keyobject.h
Provides API for importing PKCS, SEC1 keyfiles. \par License: GNU GPL v3.0.
- Author
Anthony Cagliano
Defines
-
TLS_PRIVKEY_RSA_FIELDS
-
TLS_PRIVKEY_EC_FIELDS
-
TLS_PUBKEY_RSA_FIELDS
-
TLS_PUBKEY_EC_FIELDS
-
TLS_CERTIFICATE_FIELDS
Enums
-
enum tls_key_type_flags
Values:
-
enumerator TLS_KEY_PUBLIC
Indicates the tls_keyobject describes a public key.
-
enumerator TLS_KEY_PRIVATE
Indicates the tls_keyobject describes a private key.
-
enumerator TLS_KEY_RSA
Indicates the tls_keyobject describes an RSA key.
-
enumerator TLS_KEY_ECC
Indicates the tls_keyobject describes an EC key.
-
enumerator TLS_CERTIFICATE
Indicates the tls_keyobject describes an X.509 certificate.
-
enumerator TLS_KEY_PUBLIC
-
enum tls_objectids
Values:
-
enumerator TLS_OID_RSA_ENCRYPTION
RSAEncryption => 1.2.840.113549.1.1.1.
-
enumerator TLS_OID_EC_PUBLICKEY
id-ecPublicKey => 1.2.840.10045.2.1
-
enumerator TLS_OID_EC_PRIVATEKEY
id-ecPrivateKey => 1.3.132.1.8
-
enumerator TLS_OID_AES_128_GCM
AES-128-GCM => 2.16.840.1.101.3.4.1.2.
-
enumerator TLS_OID_AES_128_CBC
AES-128-CBC => 2.16.840.1.101.3.4.1.2.
-
enumerator TLS_OID_AES_256_GCM
AES-256-GCM => 2.16.840.1.101.3.4.2.1.
-
enumerator TLS_OID_AES_256_CBC
AES-256-CBC => 2.16.840.1.101.3.4.1.42.
-
enumerator TLS_OID_PBKDF2
PBKDF2 => 1.2.840.113549.1.5.12.
-
enumerator TLS_OID_PBES2
PBES2 => 1.2.840.113549.1.5.13.
-
enumerator TLS_OID_HMAC_SHA256
HMAC-SHA256 => 1.2.840.113549.2.9.
-
enumerator TLS_OID_SHA256_RSA_ENCRYPTION
sha256WithRSAEncryption => 1.2.840.113549.1.1.11
-
enumerator TLS_OID_SHA384_RSA_ENCRYPTION
sha384WithRSAEncryption => 1.2.840.113549.1.1.12
-
enumerator TLS_OID_SHA256_ECDSA
sha256WithECDSA => 1.2.840.10045.4.3.2
-
enumerator TLS_OID_RSA_ENCRYPTION
Functions
-
struct tls_keyobject *tls_keyobject_import_private(const char *pem_data, size_t size, const char *password)
-
struct tls_keyobject *tls_keyobject_import_public(const char *pem_data, size_t size)
-
struct tls_keyobject *tls_keyobject_import_certificate(const char *pem_data, size_t size)
-
bool tls_x509_has_required_ca_constraints(const uint8_t *cert_der, size_t cert_len)
-
void tls_keyobject_destroy(struct tls_keyobject *kf)
Variables
-
uint8_t tls_objectid_bytes[][10]
Array of bytearrays describing OBJECT IDENTIFIERS supported by this library.
-
struct tls_keyobject
- #include <keyobject.h>
Defines a container for metadata for various key and certificate types supported by this library.
Public Members
-
size_t length
-
size_t type
-
struct tls_asn1_serialization fields[TLS_CERTIFICATE_FIELDS]
-
struct tls_asn1_serialization subj_signature_alg
-
struct tls_asn1_serialization issuer
-
struct tls_asn1_serialization valid_before
-
struct tls_asn1_serialization valid_after
-
struct tls_asn1_serialization subject
-
struct tls_asn1_serialization spki_raw
Raw DER bytes of SubjectPublicKeyInfo (for SPKI pinning)
-
struct tls_asn1_serialization ca_signature_alg
-
struct tls_asn1_serialization ca_signature
-
struct tls_asn1_serialization modulus
-
struct tls_asn1_serialization exponent
-
struct tls_keyobject field
-
union tls_keyobject rsa
-
struct tls_asn1_serialization ec_point
-
struct tls_keyobject ec
-
union tls_keyobject pubkey
-
struct tls_keyobject field
-
union tls_keyobject certificate
Defines fields for an X.509 certificate.
-
struct tls_asn1_serialization public_exponent
-
struct tls_asn1_serialization p
-
struct tls_asn1_serialization q
-
struct tls_asn1_serialization exp1
-
struct tls_asn1_serialization exp2
-
struct tls_asn1_serialization coeff
-
struct tls_keyobject field
-
union tls_keyobject rsa
-
struct tls_asn1_serialization privkey
-
struct tls_asn1_serialization curve_id
-
struct tls_asn1_serialization pubkey
-
struct tls_keyobject field
-
union tls_keyobject ec
-
union tls_keyobject privkey
Defines fields for a PKCS#1, PKCS#8, or SEC1 private key.
-
struct tls_keyobject field
-
union tls_keyobject rsa
-
struct tls_keyobject field
-
union tls_keyobject ec
-
union tls_keyobject pubkey
Defines fields for a PKCS#1, PKCS#8, or SEC1 public key.
-
union tls_keyobject meta
-
uint8_t data[]
-
size_t length