Passa al contenuto principale

Appendix A. ASN.1 Module

Questa sezione conserva il testo RFC sull'uso di ML-KEM con CMS, inclusi KEMRecipientInfo, HKDF, AES Key Wrap, ASN.1 identifiers, IANA registration e authenticated-enveloped-data example.

Appendix A.  ASN.1 Module

   This appendix includes the ASN.1 module [X680] for ML-KEM.  This
   module imports objects from [RFC5911], [RFC9629], [RFC8619], and
   [RFC9935].

   <CODE BEGINS>
   CMS-ML-KEM-2024
   { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1)
     pkcs-9(9) smime(16) modules(0) id-mod-cms-ml-kem-2024(84) }

   DEFINITIONS IMPLICIT TAGS ::= BEGIN

   EXPORTS ALL;

   IMPORTS
     SMIME-CAPS
       FROM AlgorithmInformation-2009  -- [RFC5911]
         { iso(1) identified-organization(3) dod(6) internet(1)
           security(5) mechanisms(5) pkix(7) id-mod(0)
           id-mod-algorithmInformation-02(58) }

     KEM-ALGORITHM
       FROM KEMAlgorithmInformation-2023  -- [RFC9629]
          { iso(1) identified-organization(3) dod(6) internet(1)
            security(5) mechanisms(5) pkix(7) id-mod(0)
            id-mod-kemAlgorithmInformation-2023(109) }

     kda-hkdf-with-sha256
       FROM HKDF-OID-2019  -- [RFC8619]
          { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1)
            pkcs-9(9) smime(16) modules(0) id-mod-hkdf-oid-2019(68) }

     kwa-aes128-wrap, kwa-aes256-wrap
       FROM CMSAesRsaesOaep-2009  -- [RFC5911]
          { iso(1) member-body(2) us(840) rsadsi(113549)
          pkcs(1) pkcs-9(9) smime(16) modules(0)
          id-mod-cms-aes-02(38) }

     id-alg-ml-kem-512, id-alg-ml-kem-768, id-alg-ml-kem-1024,
     pk-ml-kem-512, pk-ml-kem-768, pk-ml-kem-1024
       FROM X509-ML-KEM-2024 -- [RFC9935]
          { iso(1) identified-organization(3) dod(6)
            internet(1) security(5) mechanisms(5) pkix(7) id-mod(0)
            id-mod-x509-ml-kem-2025(121) };

   --
   -- ML-KEM Key Encapsulation Mechanism Algorithms
   --

   kema-ml-kem-512 KEM-ALGORITHM ::= {
      IDENTIFIER id-alg-ml-kem-512
      PARAMS ARE absent
      PUBLIC-KEYS { pk-ml-kem-512 }
      UKM ARE optional
      SMIME-CAPS { IDENTIFIED BY id-alg-ml-kem-512 } }

   kema-ml-kem-768 KEM-ALGORITHM ::= {
      IDENTIFIER id-alg-ml-kem-768
      PARAMS ARE absent
      PUBLIC-KEYS { pk-ml-kem-768 }
      UKM ARE optional
      SMIME-CAPS { IDENTIFIED BY id-alg-ml-kem-768 } }

   kema-ml-kem-1024 KEM-ALGORITHM ::= {
      IDENTIFIER id-alg-ml-kem-1024
      PARAMS ARE absent
      PUBLIC-KEYS { pk-ml-kem-1024 }
      UKM ARE optional
      SMIME-CAPS { IDENTIFIED BY id-alg-ml-kem-1024 } }

   -- Updates for the SMIME-CAPS Set from RFC 5911

   SMimeCapsSet SMIME-CAPS ::=
      { kema-ml-kem-512.&smimeCaps |
        kema-ml-kem-768.&smimeCaps |
        kema-ml-kem-1024.&smimeCaps |
        kda-hkdf-with-sha256.&smimeCaps |
        kwa-aes128-wrap.&smimeCaps |
        kwa-aes256-wrap.&smimeCaps,
        ... }

   END
   <CODE ENDS>