Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

AESContext

Eredita: RefCounted < Object

Fornisce l'accesso alla crittografia/decrittazione AES dei dati grezzi.

Descrizione

Questa classe contiene le informazioni di contesto necessarie per le operazioni di crittografia e decrittazione con AES (Advanced Encryption Standard). Entrambe le modalità AES-ECB e AES-CBC sono supportate.

extends Node

var aes = AESContext.new()

func _ready():
    var key = "My secret key!!!" # La chiave deve essere 16 o 32 byte.
    var data = "My secret text!!" # La dimensione dei dati deve essere un multiplo di 16 byte, imbottisci se necessario.
    # Cripta ECB
    aes.start(AESContext.MODE_ECB_ENCRYPT, key.to_utf8_buffer())
    var encrypted = aes.update(data.to_utf8_buffer())
    aes.finish()
    # Decripta ECB
    aes.start(AESContext.MODE_ECB_DECRYPT, key.to_utf8_buffer())
    var decrypted = aes.update(encrypted)
    aes.finish()
    # Verifica ECB
    assert(decrypted == data.to_utf8_buffer())

    var iv = "My secret iv!!!!" # IV deve essere esattamente 16 byte.
    # Cripta CBC
    aes.start(AESContext.MODE_CBC_ENCRYPT, key.to_utf8_buffer(), iv.to_utf8_buffer())
    encrypted = aes.update(data.to_utf8_buffer())
    aes.finish()
    # Decripta CBC
    aes.start(AESContext.MODE_CBC_DECRYPT, key.to_utf8_buffer(), iv.to_utf8_buffer())
    decrypted = aes.update(encrypted)
    aes.finish()
    # Verifica CBC
    assert(decrypted == data.to_utf8_buffer())

Metodi

void

finish()

PackedByteArray

get_iv_state()

Error

start(mode: Mode, key: PackedByteArray, iv: PackedByteArray = PackedByteArray())

PackedByteArray

update(src: PackedByteArray)


Enumerazioni

enum Mode: 🔗

Mode MODE_ECB_ENCRYPT = 0

Modalità di crittografia di codebook elettronico AES.

Mode MODE_ECB_DECRYPT = 1

Modalità di decrittazione di codebook elettronico AES.

Mode MODE_CBC_ENCRYPT = 2

AES cipher block chaining encryption mode.

Mode MODE_CBC_DECRYPT = 3

AES cipher block chaining decryption mode.

Mode MODE_MAX = 4

Valore massimo dell'enumerazione di modalità.


Descrizioni dei metodi

void finish() 🔗

Chiudere questo contesto AES in modo che possa essere ricominciato. Vedi start().


PackedByteArray get_iv_state() 🔗

Ottiene lo stato IV attuale per questo contesto (IV viene aggiornato quando viene chiamato update()). Normalmente non hai bisogno di questa funzione.

Nota: Questa funzione ha senso solo quando il contesto è iniziato con MODE_CBC_ENCRYPT o MODE_CBC_DECRYPT.


Error start(mode: Mode, key: PackedByteArray, iv: PackedByteArray = PackedByteArray()) 🔗

Avvia il contesto AES nella modalità mode fornita. Una chiave (key) di 16 o 32 byte deve essere sempre fornita, mentre un iv (vettore di inizializzazione) di esattamente 16 byte è necessario solo quando mode è MODE_CBC_ENCRYPT o MODE_CBC_DECRYPT.


PackedByteArray update(src: PackedByteArray) 🔗

Eseguire l'operazione desiderata per questo contesto AES. Ritornerà un PackedByteArray contenente il risultato della crittografia (o decrittazione) del src fornito. Vedi start() per le modalità di funzionamento.

Nota: La dimensione di src deve essere un multiplo di 16. Applica un po' di imbottitura se necessario.