AESContext

Hereda: RefCounted < Object

Proporciona acceso al cifrado/descifrado AES de datos sin procesar.

Descripción

Esta clase contiene la información de contexto necesaria para las operaciones de cifrado y descifrado con AES (Estándar de Cifrado Avanzado). Se admiten los modos AES-ECB y AES-CBC.

extends Node

var aes = AESContext.new()

func _ready():
    var key = "¡¡¡Mi clave secreta!!!" # La clave debe tener 16 o 32 bytes.
    var data = "¡¡¡Mi clave secreta!!!" # El tamaño de los datos debe ser múltiplo de 16 bytes, y aplicar relleno si es necesario.
    # Encrypt ECB
    aes.start(AESContext.MODE_ECB_ENCRYPT, key.to_utf8_buffer())
    var encrypted = aes.update(data.to_utf8_buffer())
    aes.finish()
    # Decrypt ECB
    aes.start(AESContext.MODE_ECB_DECRYPT, key.to_utf8_buffer())
    var decrypted = aes.update(encrypted)
    aes.finish()
    # Check ECB
    assert(decrypted == data.to_utf8_buffer())

    var iv = "¡¡¡Mi IV secreto!!!" # El IV debe tener exactamente 16 bytes.
    # Encrypt CBC
    aes.start(AESContext.MODE_CBC_ENCRYPT, key.to_utf8_buffer(), iv.to_utf8_buffer())
    encrypted = aes.update(data.to_utf8_buffer())
    aes.finish()
    # Decrypt CBC
    aes.start(AESContext.MODE_CBC_DECRYPT, key.to_utf8_buffer(), iv.to_utf8_buffer())
    decrypted = aes.update(encrypted)
    aes.finish()
    # Check CBC
    assert(decrypted == data.to_utf8_buffer())

Métodos

void

finish()

PackedByteArray

get_iv_state()

Error

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

PackedByteArray

update(src: PackedByteArray)


Enumeraciones

enum Mode: 🔗

Mode MODE_ECB_ENCRYPT = 0

Modo de cifrado ECB (Electronic Codebook) de AES.

Mode MODE_ECB_DECRYPT = 1

Modo de desencripción AES electronic codebook(ECB).

Mode MODE_CBC_ENCRYPT = 2

Modo de encripción AES cipher blocker chaining (CBC).

Mode MODE_CBC_DECRYPT = 3

Modo de desencripción AES cipher blocker chaining (CBC).

Mode MODE_MAX = 4

Valor máximo para el modo enum.


Descripciones de Métodos

void finish() 🔗

Cerrar este contexto AES para que pueda ser iniciado de nuevo. Véase start().


PackedByteArray get_iv_state() 🔗

Obtiene el estado actual de IV para este contexto (la IV se actualiza al llamar a update()). Normalmente no necesitas esta función.

Nota: Esta función solo tiene sentido cuando el contexto se inicia con MODE_CBC_ENCRYPT o MODE_CBC_DECRYPT.


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

Inicia el contexto AES en el mode dado. Siempre se debe proporcionar una key de 16 o 32 bytes, mientras que una iv (vector de inicialización) de exactamente 16 bytes, solo se necesita cuando mode es MODE_CBC_ENCRYPT o MODE_CBC_DECRYPT.


PackedByteArray update(src: PackedByteArray) 🔗

Ejecuta la operación deseada para este contexto AES. Devolverá un PackedByteArray que contiene el resultado de cifrar (o descifrar) la src dada. Véase start() para el modo de operación.

Nota: El tamaño de src debe ser un múltiplo de 16. Aplica algún relleno si es necesario.