class Aes128CcmEncryptor - Class for AES-CCM encryption/decryption with a keysize of 128 bits.
Utility function EncryptAes128Ccm().
Utility function DecryptAes128Ccm().
Utility function DecryptVerifyAes128Ccm().
Input/output library (tc::io):
interface tc::io::IFileSystem was updated to add 2 new methods:
.createDirectoryPath() - Create a directory path. This is similar to @ref createDirectory() but it will create a directory for each element in the path.
.getCanonicalPath() - Get the canonical form of a path
These classes were updated to reflect these additions:
tc::io::LocalFileSystem
tc::io::SubFileSystem
tc::io::VirtualFileSystem
class tc::io::EmptyStream - A read-only zero length IStream object, used in operations where a valid but empty stream must be returned.
Changed
Makefile updated (v8 2022-04-20)
Removes shared library support as it wasn't fully implemented
Added new platform specific variable DEFINEFLAGS
Refactored the unit-test system.
Regex filters for test names and test results is now available.
The default behaviour has not changed.
Input/output library (tc::io):
The convention was changed for the preferred exception where a feature throws an exception because it isn't implemented or supported
tc::NotImplementedException is to be used where a feature should be implemented, but isn't
tc::NotSupportedException is to be used where a feature isn't available, not because it hasn't been implemented yet, but rather it can't be due to the conditions of the request
These classes were updated to reflect these changes:
tc::io::ConcatenatedStream
tc::io::SubSink
tc::io::SubStream
tc::io::VirtualFileSystem
tc::crypto::Aes128CbcEncryptedStream
tc::crypto::Aes128CtrEncryptedStream
Renamed
Cryptography library (tc::crypto):
Renamed SHA family of Hash Digest algorithms to prepare for SHA-3 introduction.
SHA-1
When written as a comment SHA-1 -> SHA1
SHA-256
When written in a comment SHA-256 -> SHA2-256
class HmacSha256Generator -> class HmacSha2256Generator
Utility function GenerateHmacSha256Mac() -> GenerateHmacSha2256Mac()
class Pbkdf2Sha256KeyDeriver -> class Pbkdf2Sha2256KeyDeriver
Utility function DeriveKeyPbkdf2Sha256() -> DeriveKeyPbkdf2Sha2256()
class RsaOaepSha256Encryptor -> class RsaOaepSha2256Encryptor
Utility function EncryptRsa1024OaepSha256() -> EncryptRsa1024OaepSha2256()
Utility function DecryptRsa1024OaepSha256() -> DecryptRsa1024OaepSha2256()
Utility function EncryptRsa2048OaepSha256() -> EncryptRsa2048OaepSha2256()
Utility function DecryptRsa2048OaepSha256() -> DecryptRsa2048OaepSha2256()
Utility function EncryptRsa4096OaepSha256() -> EncryptRsa4096OaepSha2256()
Utility function DecryptRsa4096OaepSha256() -> DecryptRsa4096OaepSha2256()
class RsaPkcs1Sha256Signer -> class RsaPkcs1Sha2256Signer
Utility function SignRsa1024Pkcs1Sha256() -> SignRsa1024Pkcs1Sha2256()
Utility function VerifyRsa1024Pkcs1Sha256() -> VerifyRsa1024Pkcs1Sha2256()
Utility function SignRsa2048Pkcs1Sha256() -> SignRsa2048Pkcs1Sha2256()
Utility function VerifyRsa2048Pkcs1Sha256() -> VerifyRsa2048Pkcs1Sha2256()
Utility function SignRsa4096Pkcs1Sha256() -> SignRsa4096Pkcs1Sha2256()
Utility function VerifyRsa4096Pkcs1Sha256() -> VerifyRsa4096Pkcs1Sha2256()
class RsaPssSha256Signer -> class RsaPssSha2256Signer
Utility function SignRsa1024PssSha256() -> SignRsa1024PssSha2256()
Utility function VerifyRsa1024PssSha256() -> VerifyRsa1024PssSha2256()
Utility function SignRsa2048PssSha256() -> SignRsa2048PssSha2256()
Utility function VerifyRsa2048PssSha256() -> VerifyRsa2048PssSha2256()
Utility function SignRsa4096PssSha256() -> SignRsa4096PssSha2256()
Utility function VerifyRsa4096PssSha256() -> VerifyRsa4096PssSha2256()
class Sha256Generator -> class Sha2256Generator
Utility function GenerateSha256Hash() -> GenerateSha2256Hash()
SHA-512
When written in a comment SHA-512 -> SHA2-512
class HmacSha512Generator -> class HmacSha2512Generator
Utility function GenerateHmacSha512Mac() -> GenerateHmacSha2512Mac()
class Pbkdf2Sha512KeyDeriver -> class Pbkdf2Sha2512KeyDeriver
Utility function DeriveKeyPbkdf2Sha512() -> DeriveKeyPbkdf2Sha2512()
class RsaOaepSha512Encryptor -> class RsaOaepSha2512Encryptor
Utility function EncryptRsa1024OaepSha512() -> EncryptRsa1024OaepSha2512()
Utility function DecryptRsa1024OaepSha512() -> DecryptRsa1024OaepSha2512()
Utility function EncryptRsa2048OaepSha512() -> EncryptRsa2048OaepSha2512()
Utility function DecryptRsa2048OaepSha512() -> DecryptRsa2048OaepSha2512()
Utility function EncryptRsa4096OaepSha512() -> EncryptRsa4096OaepSha2512()
Utility function DecryptRsa4096OaepSha512() -> DecryptRsa4096OaepSha2512()
class RsaPkcs1Sha512Signer -> class RsaPkcs1Sha2512Signer
Utility function SignRsa1024Pkcs1Sha512() -> SignRsa1024Pkcs1Sha2512()
Utility function VerifyRsa1024Pkcs1Sha512() -> VerifyRsa1024Pkcs1Sha2512()
Utility function SignRsa2048Pkcs1Sha512() -> SignRsa2048Pkcs1Sha2512()
Utility function VerifyRsa2048Pkcs1Sha512() -> VerifyRsa2048Pkcs1Sha2512()
Utility function SignRsa4096Pkcs1Sha512() -> SignRsa4096Pkcs1Sha2512()
Utility function VerifyRsa4096Pkcs1Sha512() -> VerifyRsa4096Pkcs1Sha2512()
class RsaPssSha512Signer -> class RsaPssSha2512Signer
Utility function SignRsa1024PssSha512() -> SignRsa1024PssSha2512()
Utility function VerifyRsa1024PssSha512() -> VerifyRsa1024PssSha2512()
Utility function SignRsa2048PssSha512() -> SignRsa2048PssSha2512()
Utility function VerifyRsa2048PssSha512() -> VerifyRsa2048PssSha2512()
Utility function SignRsa4096PssSha512() -> SignRsa4096PssSha2512()
Utility function VerifyRsa4096PssSha512() -> VerifyRsa4096PssSha2512()
class Sha512Generator -> class Sha2512Generator
Utility function GenerateSha512Hash() -> GenerateSha2512Hash()
Removed
N/A
Task List
[x] Test coverage for new/revised classes complete
[x] Tests work on supported platforms
[x] Documentation coverage for new/revised classes complete
[ ] Documentation pushed to https://jakcron.github.io/libtoolchain-docs/
Changes since 0.5
Added
Aes128CcmEncryptor
- Class for AES-CCM encryption/decryption with a keysize of 128 bits.EncryptAes128Ccm()
.DecryptAes128Ccm()
.DecryptVerifyAes128Ccm()
.interface tc::io::IFileSystem
was updated to add 2 new methods:.createDirectoryPath()
- Create a directory path. This is similar to @ref createDirectory() but it will create a directory for each element in the path..getCanonicalPath()
- Get the canonical form of a pathtc::io::LocalFileSystem
tc::io::SubFileSystem
tc::io::VirtualFileSystem
class tc::io::EmptyStream
- A read-only zero length IStream object, used in operations where a valid but empty stream must be returned.Changed
DEFINEFLAGS
tc::NotImplementedException
is to be used where a feature should be implemented, but isn'ttc::NotSupportedException
is to be used where a feature isn't available, not because it hasn't been implemented yet, but rather it can't be due to the conditions of the requesttc::io::ConcatenatedStream
tc::io::SubSink
tc::io::SubStream
tc::io::VirtualFileSystem
tc::crypto::Aes128CbcEncryptedStream
tc::crypto::Aes128CtrEncryptedStream
Renamed
SHA-1
->SHA1
SHA-256
->SHA2-256
class HmacSha256Generator
->class HmacSha2256Generator
GenerateHmacSha256Mac()
->GenerateHmacSha2256Mac()
class Pbkdf2Sha256KeyDeriver
->class Pbkdf2Sha2256KeyDeriver
DeriveKeyPbkdf2Sha256()
->DeriveKeyPbkdf2Sha2256()
class RsaOaepSha256Encryptor
->class RsaOaepSha2256Encryptor
EncryptRsa1024OaepSha256()
->EncryptRsa1024OaepSha2256()
DecryptRsa1024OaepSha256()
->DecryptRsa1024OaepSha2256()
EncryptRsa2048OaepSha256()
->EncryptRsa2048OaepSha2256()
DecryptRsa2048OaepSha256()
->DecryptRsa2048OaepSha2256()
EncryptRsa4096OaepSha256()
->EncryptRsa4096OaepSha2256()
DecryptRsa4096OaepSha256()
->DecryptRsa4096OaepSha2256()
class RsaPkcs1Sha256Signer
->class RsaPkcs1Sha2256Signer
SignRsa1024Pkcs1Sha256()
->SignRsa1024Pkcs1Sha2256()
VerifyRsa1024Pkcs1Sha256()
->VerifyRsa1024Pkcs1Sha2256()
SignRsa2048Pkcs1Sha256()
->SignRsa2048Pkcs1Sha2256()
VerifyRsa2048Pkcs1Sha256()
->VerifyRsa2048Pkcs1Sha2256()
SignRsa4096Pkcs1Sha256()
->SignRsa4096Pkcs1Sha2256()
VerifyRsa4096Pkcs1Sha256()
->VerifyRsa4096Pkcs1Sha2256()
class RsaPssSha256Signer
->class RsaPssSha2256Signer
SignRsa1024PssSha256()
->SignRsa1024PssSha2256()
VerifyRsa1024PssSha256()
->VerifyRsa1024PssSha2256()
SignRsa2048PssSha256()
->SignRsa2048PssSha2256()
VerifyRsa2048PssSha256()
->VerifyRsa2048PssSha2256()
SignRsa4096PssSha256()
->SignRsa4096PssSha2256()
VerifyRsa4096PssSha256()
->VerifyRsa4096PssSha2256()
class Sha256Generator
->class Sha2256Generator
GenerateSha256Hash()
->GenerateSha2256Hash()
SHA-512
->SHA2-512
class HmacSha512Generator
->class HmacSha2512Generator
GenerateHmacSha512Mac()
->GenerateHmacSha2512Mac()
class Pbkdf2Sha512KeyDeriver
->class Pbkdf2Sha2512KeyDeriver
DeriveKeyPbkdf2Sha512()
->DeriveKeyPbkdf2Sha2512()
class RsaOaepSha512Encryptor
->class RsaOaepSha2512Encryptor
EncryptRsa1024OaepSha512()
->EncryptRsa1024OaepSha2512()
DecryptRsa1024OaepSha512()
->DecryptRsa1024OaepSha2512()
EncryptRsa2048OaepSha512()
->EncryptRsa2048OaepSha2512()
DecryptRsa2048OaepSha512()
->DecryptRsa2048OaepSha2512()
EncryptRsa4096OaepSha512()
->EncryptRsa4096OaepSha2512()
DecryptRsa4096OaepSha512()
->DecryptRsa4096OaepSha2512()
class RsaPkcs1Sha512Signer
->class RsaPkcs1Sha2512Signer
SignRsa1024Pkcs1Sha512()
->SignRsa1024Pkcs1Sha2512()
VerifyRsa1024Pkcs1Sha512()
->VerifyRsa1024Pkcs1Sha2512()
SignRsa2048Pkcs1Sha512()
->SignRsa2048Pkcs1Sha2512()
VerifyRsa2048Pkcs1Sha512()
->VerifyRsa2048Pkcs1Sha2512()
SignRsa4096Pkcs1Sha512()
->SignRsa4096Pkcs1Sha2512()
VerifyRsa4096Pkcs1Sha512()
->VerifyRsa4096Pkcs1Sha2512()
class RsaPssSha512Signer
->class RsaPssSha2512Signer
SignRsa1024PssSha512()
->SignRsa1024PssSha2512()
VerifyRsa1024PssSha512()
->VerifyRsa1024PssSha2512()
SignRsa2048PssSha512()
->SignRsa2048PssSha2512()
VerifyRsa2048PssSha512()
->VerifyRsa2048PssSha2512()
SignRsa4096PssSha512()
->SignRsa4096PssSha2512()
VerifyRsa4096PssSha512()
->VerifyRsa4096PssSha2512()
Sha512Generator
->class Sha2512Generator
GenerateSha512Hash()
->GenerateSha2512Hash()
Removed
N/A
Task List
https://jakcron.github.io/libtoolchain-docs/