52#ifndef QSC_X509_KEYWRITE_H
53#define QSC_X509_KEYWRITE_H
59QSC_CPLUSPLUS_ENABLED_START
85#define QSC_X509_KEY_WRITE_MAX 16384U
104 bool includepublickey, uint8_t* output,
size_t* outputlen);
175 size_t privatekeylen,
const uint8_t* publickey,
size_t publickeylen,
bool publickeypresent, uint8_t* output,
size_t* outputlen);
197 size_t privatekeylen,
const uint8_t* publickey,
size_t publickeylen,
bool publickeypresent,
char* output,
size_t* outputlen);
218 size_t privatekeylen,
const uint8_t* publickey,
size_t publickeylen,
bool publickeypresent, uint8_t* output,
size_t* outputlen);
239 size_t privatekeylen,
const uint8_t* publickey,
size_t publickeylen,
bool publickeypresent,
char* output,
size_t* outputlen);
260 size_t privatekeylen,
const uint8_t* publickey,
size_t publickeylen,
bool publickeypresent, uint8_t* output,
size_t* outputlen);
281 size_t privatekeylen,
const uint8_t* publickey,
size_t publickeylen,
bool publickeypresent,
char* output,
size_t* outputlen);
283QSC_CPLUSPLUS_ENABLED_END
enum qsc_asn1_status_t qsc_asn1_status
ASN.1 helper status codes.
Contains common definitions for the Quantum Secure Cryptographic (QSC) library.
#define QSC_EXPORT_API
API export macro for Microsoft compilers when importing from a DLL.
Definition qsccommon.h:605
A decoded private key object with optional embedded public key material.
X.509 private key decoding, size validation, and certificate-key matching interface.
QSC_EXPORT_API qsc_asn1_status qsc_x509_private_key_encode_pkcs8_der_ex(const qsc_x509_algorithm_identifier *algorithm, const uint8_t *privatekey, size_t privatekeylen, const uint8_t *publickey, size_t publickeylen, bool publickeypresent, uint8_t *output, size_t *outputlen)
Encode raw private key material as PKCS #8 DER.
Definition x509keywrite.c:581
QSC_EXPORT_API qsc_asn1_status qsc_x509_private_key_encode_pkcs8_der(const qsc_x509_private_key *key, bool includepublickey, uint8_t *output, size_t *outputlen)
Encode a normalized private key object as PKCS #8 DER.
Definition x509keywrite.c:529
QSC_EXPORT_API qsc_asn1_status qsc_x509_private_key_encode_pkcs8_ml_dsa_der(qsc_x509_pqc_parameter_set parameter, const uint8_t *privatekey, size_t privatekeylen, const uint8_t *publickey, size_t publickeylen, bool publickeypresent, uint8_t *output, size_t *outputlen)
Encode an ML-DSA private key as PKCS #8 DER.
Definition x509keywrite.c:849
QSC_EXPORT_API qsc_asn1_status qsc_x509_private_key_encode_pkcs8_ml_kem_der(qsc_x509_pqc_parameter_set parameter, const uint8_t *privatekey, size_t privatekeylen, const uint8_t *publickey, size_t publickeylen, bool publickeypresent, uint8_t *output, size_t *outputlen)
Encode an ML-KEM private key as PKCS #8 DER.
Definition x509keywrite.c:896
QSC_EXPORT_API qsc_asn1_status qsc_x509_private_key_encode_pkcs8_pem_ex(const qsc_x509_algorithm_identifier *algorithm, const uint8_t *privatekey, size_t privatekeylen, const uint8_t *publickey, size_t publickeylen, bool publickeypresent, char *output, size_t *outputlen)
Encode raw private key material as PKCS #8 PEM.
Definition x509keywrite.c:803
QSC_EXPORT_API qsc_asn1_status qsc_x509_private_key_encode_pkcs8_ml_kem_pem(qsc_x509_pqc_parameter_set parameter, const uint8_t *privatekey, size_t privatekeylen, const uint8_t *publickey, size_t publickeylen, bool publickeypresent, char *output, size_t *outputlen)
Encode an ML-KEM private key as PKCS #8 PEM.
Definition x509keywrite.c:920
QSC_EXPORT_API qsc_asn1_status qsc_x509_private_key_encode_pkcs8_ml_dsa_pem(qsc_x509_pqc_parameter_set parameter, const uint8_t *privatekey, size_t privatekeylen, const uint8_t *publickey, size_t publickeylen, bool publickeypresent, char *output, size_t *outputlen)
Encode an ML-DSA private key as PKCS #8 PEM.
Definition x509keywrite.c:873
QSC_EXPORT_API qsc_asn1_status qsc_x509_private_key_encode_pkcs8_pem(const qsc_x509_private_key *key, bool includepublickey, char *output, size_t *outputlen)
Encode a normalized private key object as PKCS #8 PEM.
Definition x509keywrite.c:552
QSC_EXPORT_API qsc_asn1_status qsc_x509_private_key_encode_sec1_der(const qsc_x509_private_key *key, bool includeparameters, bool includepublickey, uint8_t *output, size_t *outputlen)
Encode a normalized private key object as SEC 1 DER.
Definition x509keywrite.c:476
QSC_EXPORT_API qsc_asn1_status qsc_x509_private_key_encode_sec1_pem(const qsc_x509_private_key *key, bool includeparameters, bool includepublickey, char *output, size_t *outputlen)
Encode a normalized private key object as SEC 1 PEM.
Definition x509keywrite.c:500