/apple-corecrypto

https://developer.apple.com/security/

Primary LanguagePHPOtherNOASSERTION

This is the corecrypto (cc) project.

The main goal is to provide low level fast math routines and crypto APIs which
can be used in various environments (Kernel, bootloader, userspace, etc.).  It
is an explicit goal to minimize dependancies between modules and functions so
that clients of this library only end up with the routines they need and
nothing more.

Current corecrypto consists of the following submodules:

cc           Headers and code common to all of the modules
ccasn1       ASN.1 typeid constants and ccoid definition.
cccurve25519 Curve25519 Diffie-Hellman routines.
ccder        DER encoding decoding support
ccn          Math on vectors of n cc_units
cczp         Math over a prime field on vectors of n cc_units
ccz          Variable sized signed integer math routines
ccdrbg       Deterministic Random Byte Generators
ccrng        Random Bytes Generators
ccdh         Diffie-Hellman routines.
cced25519    Ed25519 signature routines.
ccrsa        RSA routines.
ccec         Eliptic Curve Curves, ec specific math and APIs
ccdigest     Digest abstraction layer.
cchmac       HMAC using any ccdigest.
ccpbkdf2     PKKDF2 using any ccdigest.
ccmd2        MD2 digest implementations.
ccmd4        MD4 digest implementations.
ccmd5        MD5 digest implementations.
ccripemd     RIPE-MD digest implementations.
ccsha1       SHA-1 digest implementations.
ccsha2       SHA-2 digest implementations.
ccmode       Symmetric cipher chaining mode interfaces.
ccpad        Symmetric cipher padding code.
ccaes        AES symmetric cipher implementations.
ccblowfish   Blowfish symmetric cipher implementations.
cccast       Cast symmetric cipher implementations.
ccdes        DES and 3DES symmetric cipher implementations.
ccrc2        RC2 symmetric cipher implementations.
ccrc4        RC4 symmetric cipher implementations.
ccperf       Performance testing harness.
cctest       Common utilities for creating self tests and XCunit tests.

Each module has the following subdirectories:
    corecrypto     headers for this module
    src            sources for this module
    doc            documentation, references, etc.
    xcunit         XCTest based unit tests for this module.
    crypto_tests   sources for executable tests for this module
    test_vectors   test vectors for this module
    tools          sources for random helper tools.

The following subdirections don't follow the module layout yet:

corecrypto_kext   Supporting files for kernel extension build and fips support.
corecrypto_dylib  Supporting files for userspace shared lib build and fips support.