VirtualBox

Ignore:
Timestamp:
Jul 6, 2023 7:24:56 PM (21 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
158161
Message:

IPRT/PKCS8: add key format for PKCS #8 bugref:10299

File:
1 copied

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Runtime/common/crypto/pkcs8-template.h

    r99258 r100421  
    11/* $Id$ */
    22/** @file
    3  * IPRT - Crypto - RSA, Code Generator Template.
     3 * IPRT - Crypto - PKCS \#8, Code Generator Template.
    44 */
    55
     
    3838
    3939/*
    40  * RSA public key.
     40 * PKCS\#8 Private key info
    4141 */
    42 #define RTASN1TMPL_TYPE         RTCRRSAPUBLICKEY
    43 #define RTASN1TMPL_EXT_NAME     RTCrRsaPublicKey
    44 #define RTASN1TMPL_INT_NAME     rtCrRsaPublicKey
     42#define RTASN1TMPL_TYPE         RTCRPKCS8PRIVATEKEYINFO
     43#define RTASN1TMPL_EXT_NAME     RTCrPkcs8PrivateKeyInfo
     44#define RTASN1TMPL_INT_NAME     rTCrPkcs8PrivateKeyInfo
    4545RTASN1TMPL_BEGIN_SEQCORE();
    46 RTASN1TMPL_MEMBER(              Modulus,            RTASN1INTEGER,                  RTAsn1Integer);
    47 RTASN1TMPL_MEMBER(              PublicExponent,     RTASN1INTEGER,                  RTAsn1Integer);
     46RTASN1TMPL_MEMBER(              Version,                RTASN1INTEGER,                  RTAsn1Integer);
     47RTASN1TMPL_MEMBER(              PrivateKeyAlgorithm,    RTCRX509ALGORITHMIDENTIFIER,    RTCrX509AlgorithmIdentifier);
     48RTASN1TMPL_MEMBER(              PrivateKey,             RTASN1OCTETSTRING,              RTAsn1OctetString);
     49RTASN1TMPL_MEMBER_OPT_ITAG(     Attributes,             RTCRPKCS7ATTRIBUTES,            RTCrPkcs7Attributes,     0);
    4850RTASN1TMPL_END_SEQCORE();
    4951#undef RTASN1TMPL_TYPE
     
    5153#undef RTASN1TMPL_INT_NAME
    5254
     55#if 0
    5356
    5457/*
    55  * One RSA other prime info.
     58 * Encrypted private key info
    5659 */
    57 #define RTASN1TMPL_TYPE         RTCRRSAOTHERPRIMEINFO
    58 #define RTASN1TMPL_EXT_NAME     RTCrRsaOtherPrimeInfo
    59 #define RTASN1TMPL_INT_NAME     rtCrRsaOtherPrimeInfo
     60#define RTASN1TMPL_TYPE         RTCRENCRYPTEDPRIVATEKEY
     61#define RTASN1TMPL_EXT_NAME     RTCrEncryptedPrivateKey
     62#define RTASN1TMPL_INT_NAME     rtCrEncryptedPrivateKey
    6063RTASN1TMPL_BEGIN_SEQCORE();
    61 RTASN1TMPL_MEMBER(              Prime,              RTASN1INTEGER,                  RTAsn1Integer);
    62 RTASN1TMPL_MEMBER(              Exponent,           RTASN1INTEGER,                  RTAsn1Integer);
    63 RTASN1TMPL_MEMBER(              Coefficient,        RTASN1INTEGER,                  RTAsn1Integer);
     64RTASN1TMPL_MEMBER(              EncryptionAlgorithm,    RTCRX509ALGORITHMIDENTIFIER,    RTCrX509AlgorithmIdentifier);
     65RTASN1TMPL_MEMBER(              EncryptedData,          RTASN1OCTETSTRING,              RTAsn1OctetString);
    6466RTASN1TMPL_END_SEQCORE();
    6567#undef RTASN1TMPL_TYPE
     
    6769#undef RTASN1TMPL_INT_NAME
    6870
    69 
    70 /*
    71  * Sequence of RSA other prime infos.
    72  */
    73 #define RTASN1TMPL_TYPE         RTCRRSAOTHERPRIMEINFOS
    74 #define RTASN1TMPL_EXT_NAME     RTCrRsaOtherPrimeInfos
    75 #define RTASN1TMPL_INT_NAME     rtCrRsaOtherPrimeInfos
    76 RTASN1TMPL_SEQ_OF(RTCRRSAOTHERPRIMEINFO, RTCrRsaOtherPrimeInfo);
    77 #undef RTASN1TMPL_TYPE
    78 #undef RTASN1TMPL_EXT_NAME
    79 #undef RTASN1TMPL_INT_NAME
    80 
    81 
    82 /*
    83  * RSA private key.
    84  */
    85 #define RTASN1TMPL_TYPE         RTCRRSAPRIVATEKEY
    86 #define RTASN1TMPL_EXT_NAME     RTCrRsaPrivateKey
    87 #define RTASN1TMPL_INT_NAME     rtCrRsaPrivateKey
    88 RTASN1TMPL_BEGIN_SEQCORE();
    89 RTASN1TMPL_MEMBER(              Version,            RTASN1INTEGER,                  RTAsn1Integer);
    90 RTASN1TMPL_MEMBER(              Modulus,            RTASN1INTEGER,                  RTAsn1Integer);
    91 RTASN1TMPL_MEMBER(              PublicExponent,     RTASN1INTEGER,                  RTAsn1Integer);
    92 RTASN1TMPL_MEMBER(              PrivateExponent,    RTASN1INTEGER,                  RTAsn1Integer);
    93 RTASN1TMPL_MEMBER(              Prime1,             RTASN1INTEGER,                  RTAsn1Integer);
    94 RTASN1TMPL_MEMBER(              Prime2,             RTASN1INTEGER,                  RTAsn1Integer);
    95 RTASN1TMPL_MEMBER(              Exponent1,          RTASN1INTEGER,                  RTAsn1Integer);
    96 RTASN1TMPL_MEMBER(              Exponent2,          RTASN1INTEGER,                  RTAsn1Integer);
    97 RTASN1TMPL_MEMBER(              Coefficient,        RTASN1INTEGER,                  RTAsn1Integer);
    98 RTASN1TMPL_MEMBER_OPT_ITAG_EX(  OtherPrimeInfos,    RTCRRSAOTHERPRIMEINFOS,         RTCrRsaOtherPrimeInfos, ASN1_TAG_SEQUENCE, RTASN1TMPL_ITAG_F_UC,  RT_NOTHING);
    99 RTASN1TMPL_END_SEQCORE();
    100 #undef RTASN1TMPL_TYPE
    101 #undef RTASN1TMPL_EXT_NAME
    102 #undef RTASN1TMPL_INT_NAME
    103 
    104 
    105 /*
    106  * RSA Digest Info.
    107  */
    108 #define RTASN1TMPL_TYPE         RTCRRSADIGESTINFO
    109 #define RTASN1TMPL_EXT_NAME     RTCrRsaDigestInfo
    110 #define RTASN1TMPL_INT_NAME     rtCrRsaDigestInfo
    111 RTASN1TMPL_BEGIN_SEQCORE();
    112 RTASN1TMPL_MEMBER(              DigestAlgorithm,    RTCRX509ALGORITHMIDENTIFIER,    RTCrX509AlgorithmIdentifier);
    113 RTASN1TMPL_MEMBER(              Digest,             RTASN1OCTETSTRING,              RTAsn1OctetString);
    114 RTASN1TMPL_END_SEQCORE();
    115 #undef RTASN1TMPL_TYPE
    116 #undef RTASN1TMPL_EXT_NAME
    117 #undef RTASN1TMPL_INT_NAME
    118 
     71#endif
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette