Class AesCbc

extends Aes
Advanced Encryption Standard Cipher Blocker Chaining (AES-CBC).
This implementation uses hardware accelerated primitives.
AES-CBC state for encrypting and decrypting (https://tls.mbed.org/kb/how-to/encrypt-with-aes-cbc).
To encrypt, construct an AES encryption state with AesCbc.encryptor and encrypt a block with encrypt.
To decrypt, construct and AES decryption state with AesCbc.decryptor and decrypt a block with decrypt.
Close the AES state with close to release system resources.

Class summary


encryptor key/ByteArray initialization-vector/ByteArray -> AesCbc
Creates an AES-CBC state for encryption.
decryptor key/ByteArray initialization-vector/ByteArray -> AesCbc
Creates an AES-CBC state for decryption.

Statics

decryptor key/ByteArray initialization-vector/ByteArray -> AesCbc
Creates an AES-CBC state for decryption.
The key must be 16, 24 or 32 secret bytes and the initialization-vector must be 16 bytes.

encryptor key/ByteArray initialization-vector/ByteArray -> AesCbc
Creates an AES-CBC state for encryption.
The key must be 16, 24 or 32 secret bytes and the initialization-vector must be 16 random 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.