49#if (SHARKSSL_ENABLE_CSR_SIGNING)
55#define SHARKSSL_CERT_PROFILE_ROOT_CA 1
56#define SHARKSSL_CERT_PROFILE_INTERMEDIATE_CA 2
57#define SHARKSSL_CERT_PROFILE_TLS_SERVER 3
58#define SHARKSSL_CERT_PROFILE_TLS_CLIENT 4
59#define SHARKSSL_CERT_PROFILE_OPCUA_SERVER 5
60#define SHARKSSL_CERT_PROFILE_OPCUA_CLIENT 6
61#define SHARKSSL_CERT_PROFILE_TLS_SERVER_SELF_SIGNED 7
63#define SHARKSSL_CERT_SAN_DNS 2
64#define SHARKSSL_CERT_SAN_URI 6
65#define SHARKSSL_CERT_SAN_IP 7
122 const char *validFrom,
157 const char *validFrom,
160 SharkCertSerialNumber serialNumber,
162#if SHARKSSL_PSA_CONSUMER
172 const char *validFrom,
175 SharkCertSerialNumber serialNumber,
178#if SHARKSSL_ENABLE_EDDSA
189 const char *validFrom,
192 SharkCertSerialNumber serialNumber,
TLS objects, certificate/session operations, and public-key interfaces.
SHARKSSL_API int SharkSslCert_validateCAChain(const SharkSslCertDER *chain, const SharkSslCertDER *trustedRoot, const SharkSslKey expectedKey, const char *utcNow, U16 count)
Validate an imported CA chain before enabling its issuing key.
SHARKSSL_API int SharkSslCert_signCSR(SharkSslCert *signedCSR, const SharkSslCertProfile *profile, const U8 *csrData, const SharkSslCert caCert, const SharkSslKey privKey, const char *validFrom, const char *validTo, int csrDataLen, SharkCertSerialNumber serialNumber, U8 hashID)
Sign a verified CSR under an explicit issuer policy.
struct SharkSslCertSAN SharkSslCertSAN
DNS/URI values are ASCII bytes; IP values are 4 or 16 network-order bytes.
SHARKSSL_API int SharkSslCert_signCSRWithPSAEdDSAKey(SharkSslCert *signedCSR, const SharkSslCertProfile *profile, const U8 *csrData, const SharkSslCert caCert, const char *validFrom, const char *validTo, int csrDataLen, SharkCertSerialNumber serialNumber, psa_key_id_t psaSignKey)
Sign a verified CSR with a PSA Ed25519 or Ed448 PureEdDSA private handle The public key of the handle...
struct SharkSslCertProfile SharkSslCertProfile
struct SharkSslCertDER SharkSslCertDER
One bounded DER certificate; a chain runs from operational CA to root.
SHARKSSL_API int SharkSslCert_validateIssuedIdentity(const SharkSslCertDER *issued, const SharkSslCertDER *issuer, const SharkSslKey expectedKey, const SharkSslCertSAN *approvedSANs, const char *validFrom, const char *validTo, const char *utcNow, U16 sanCount)
Check an issued leaf against the approved key, exact typed DNS/URI/IP SAN set, issuer,...
SHARKSSL_API int SharkSslCert_signCSRWithPSAKey(SharkSslCert *signedCSR, const SharkSslCertProfile *profile, const U8 *csrData, const SharkSslCert caCert, const char *validFrom, const char *validTo, int csrDataLen, SharkCertSerialNumber serialNumber, psa_key_id_t psaSignKey, U8 hashID)
Sign a verified CSR with a PSA RSA or P-256/P-384/P-521 ECDSA private handle The public key of the ha...
uint32_t psa_key_id_t
Definition: crypto.h:60
const U8 * SharkSslCert
The SharkSSL Certificate is in a binary format optimized for speed and size.
Definition: SharkSSL.h:326
U8 * SharkSslKey
The SharkSslKey type.
Definition: SharkSSL.h:318
One bounded DER certificate; a chain runs from operational CA to root.
Definition: SharkSslCSR.h:85
const U8 * data
Definition: SharkSslCSR.h:86
U16 length
Definition: SharkSslCSR.h:87
Required issuer policy for certificate signing.
Definition: SharkSslCSR.h:76
U16 pathLenConstraint
Definition: SharkSslCSR.h:79
int(* approveSANs)(void *context, const SharkSslCertSAN *names, U16 count)
Definition: SharkSslCSR.h:77
U8 type
Definition: SharkSslCSR.h:80
void * context
Definition: SharkSslCSR.h:78
DNS/URI values are ASCII bytes; IP values are 4 or 16 network-order bytes.
Definition: SharkSslCSR.h:69
U16 length
Definition: SharkSslCSR.h:71
U8 type
Definition: SharkSslCSR.h:72
const U8 * value
Definition: SharkSslCSR.h:70