Class AesEcb

extends Aes
Advanced Encryption Standard Electronic codebook (AES-ECB).
Warning
This encryption mode is no longer recommended, due to flaws in its security. Use only for interfacing with legacy systems that require it.
This implementation uses hardware accelerated primitives.
AES-ECB state for encrypting and decrypting
To encrypt, construct an AES encryption state with AesEcb.encryptor and encrypt a block with encrypt.
To decrypt, construct and AES decryption state with AesEcb.decryptor and decrypt a block with decrypt.
Close the AES state with close to release system resources.

Class summary


encryptor key/ByteArray -> AesEcb
Creates an AES-ECB state for encryption.
decryptor key/ByteArray -> AesEcb
Creates an AES-ECB state for decryption.

Statics

Creates an AES-ECB state for decryption.
The key must be either 16, 24 or 32 secret bytes.

Creates an AES-ECB state for encryption.
The key must be either 16, 24 or 32 secret bytes.

Methods

close -> none
Closes this encrypter and releases associated resources.

Decrypts the given ciphertext.
The size of the ciphertext must be a multiple of 16.
Returns a byte array with the decrypted data.

Encrypts the given plaintext.
The size of the plaintext must be a multiple of 16.
Returns a byte array with the encrypted data.

operator == other/any -> bool
Whether this object is equal to the other.
By default, identical is used for equality.
Inheritance
Classes overwrite this operator to get an equality specific to their needs. Equality operators often compare the type and field contents. For example:

class Pin:
  number/int

  constructor .number:

  operator == other:
    if other is not Pin: return false
    return number == other.number
A class doesn't have to follow the above format, but it must keep the operator in sync with any hash-code method. That is, if a class has a hash-code member, then the equality and hash-code must agree. If two instances are equal (a == b), then their hash codes must also be equal (a.hash-code == b.hash-code).

Stringifies this object.
Inheritance
Objects that need a human-friendly string representation should overwrite this method. The default string is based on the internal class-ID.