History log of /fuchsia/zircon/system/utest/crypto/utils.cpp
Revision Date Author Comments
# 5385b50e 25-May-2018 Aaron Green <aarongreen@google.com>

[crypto] Split Bytes class

This CL breaks out the Secret class from the Bytes class. A number of
paranoid but expensive functions are only needed for security sensitve
secrets, e.g. mandatory_memset in the destructor of keys. This split
allows only the data that needs the paranoia to pay for it.

Change-Id: Ib3fdc23ef7c0f86a6549c639353ac72bb35ebedf


# 23d453e5 21-Nov-2017 Aaron Green <aarongreen@google.com>

[ulib/crypto] Bytes class improvements

This CL adds a few more helper methods and tweaks to Bytes:
- Copy(const Bytes &) copies from another Bytes object.
- Resize(size_t) is a no-op if the size is unchanged.
- Randomize(0) will skip the resizing step.
- Merge(const Bytes &) copies another Bytes to the end of this one.
- Split(Bytes*) copies to another Bytes from the end of this one.

Change-Id: I9fced1b700285b51e8e8461472cf5ee6dccb5640


# ddfd1d95 25-Oct-2017 Aaron Green <aarongreen@google.com>

[crypto] Add AEAD class

This CL adds AEAD, a secret key cipher that can be used to encrypt and
decrypt data. AEADs are distinguished from Ciphers in that they do not
require block-aligned lengths and ensure data integrity, at the cost of
some additional space.

Change-Id: I51df60a004f55e763f18ec0d468a7a4ddb9f46f4


# 5daf98de 17-Oct-2017 Aaron Green <aarongreen@google.com>

[crypto] Add Cipher class

This CL adds Cipher, a secret key cipher that can be used to encrypt and
decrypt data. Ciphers are distinguished from AEADs in that they require
block-aligned lengths and do not ensure data integrity.

Change-Id: I080237adfa3997a9f60903a37a8b377b81766e7f


# c83034d3 17-Oct-2017 Aaron Green <aarongreen@google.com>

[crypto] Add HMAC class

This CL adds an HMAC, a hash-based message authentication code, that can
be used to verify the integrity of data.

Change-Id: I9b2f5e94cefd9de66529b3eb8b41ff1755fab778


# cb139aa3 17-Oct-2017 Aaron Green <aarongreen@google.com>

[crypto] Add Bytes class

This CL adds Bytes, which represents a byte buffer with methods to
securely erase on destruction and compare in constant time.

Change-Id: I2c970d02eb70c09c59c76d7c5640a14b02c23d68