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

Hérite de : RefCounted < Object

Fournit l'accès au chiffrement/déchiffrement AES de données brutes.

Description

Cette classe contient l'information de contexte nécessaire aux opérations de chiffrement/déchiffrement AES (Advanced Encryption Standard, litt. Norme de Chiffrement Avancé). Elle est compatible avec les modes AES-ECB et AES-CBC.

extends Node

var aes = AESContext.new()

func _ready():
    var cle = "Ma clé secrète !!!" # La clé doit être soit de 16 ou de 32 octets.
    var donnee = "Mon texte secret!!" # La taille des données doit être un multiple de 16 octets, ajoutez du remplissage si nécessaire.
    # Crypter l'ECB
    aes.start(AESContext.MODE_ECB_ENCRYPT, cle.to_utf8())
    var encrypte = aes.update(donnee.to_utf8())
    aes.finish()
    # Décrypter l'ECB
    aes.start(AESContext.MODE_ECB_DECRYPT, cle.to_utf8())
    var decrypte = aes.update(encrypte)
    aes.finish()
    # Vérifier l'ECB
    assert(decrypte == donnee.to_utf8())

    var iv = "Mon iv secret !!!!" # La taille du vecteur d'initialisation doit être d'exactement 16 octets.
    # Chiffrer le CBC
    aes.start(AESContext.MODE_CBC_ENCRYPT, cle.to_utf8(), iv.to_utf8())
    encrypte = aes.update(donnee.to_utf8())
    aes.finish()
    # Déchiffrer le CBC
    aes.start(AESContext.MODE_CBC_DECRYPT, cle.to_utf8(), iv.to_utf8())
    decrypte = aes.update(encrypte)
    aes.finish()
    # Vérifier le CBC
    assert(encrypte == donnee.to_utf8())

Méthodes

void

finish()

PackedByteArray

get_iv_state()

Error

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

PackedByteArray

update(src: PackedByteArray)


Énumérations

enum Mode: 🔗

Mode MODE_ECB_ENCRYPT = 0

Mode de chiffrement du livre de codes électroniques AES.

Mode MODE_ECB_DECRYPT = 1

Mode de décryptage du codebook électronique AES.

Mode MODE_CBC_ENCRYPT = 2

Mode de chiffrement par chaînage de blocs AES.

Mode MODE_CBC_DECRYPT = 3

Mode de déchiffrement par chaînage de blocs AES.

Mode MODE_MAX = 4

Valeur maximale pour le mode énumeration.


Descriptions des méthodes

void finish() 🔗

Ferme ce contexte AES afin qu’il puisse être recommencé. Voir start().


PackedByteArray get_iv_state() 🔗

Obtient l'état IV actuel pour ce contexte (L'IV est mis à jour en appelant update()). Vous n'avez généralement pas besoin de cette fonction.

Note : Cette fonction a seulement du sens quand le contexte est initialisé avec MODE_CBC_ENCRYPT ou MODE_CBC_DECRYPT.


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

Commence le contexte AES dans le mode donné. Une clé key de soit 16 ou 32 octets doit toujours être fournie, alors qu'un iv (vecteur d'initialisation) de précisément 16 octets est seulement nécessaire quand mode est soit MODE_CBC_ENCRYPT ou MODE_CBC_DECRYPT.


PackedByteArray update(src: PackedByteArray) 🔗

Exécute l'opération désirée pour ce contexte AES. Renverra un PackedByteArray contenant le résultat du chiffrement (ou déchiffrement) de src. Voir start() pour le mode d'opération.

Note : La taille de src doit être un multiple de 16. Applique du padding si nécessaire.