Atribut CMC

Dalam praktiknya, struktur permintaan CMC, yang ditunjukkan oleh sintaks berikut, relatif kompleks karena sering berisi permintaan berlapis. Misalnya, permintaan CMC dapat berisi nol atau satu permintaan PKCS #10 dalam urutan TaggedRequest , dan dapat berisi nol atau satu pesan PKCS #7 dalam urutan TaggedContentInfo . Setiap pesan PKCS #7 berlapis dapat berisi permintaan CMC yang dapat berisi lebih banyak permintaan. Jumlah tingkat bersarang secara teoritis tidak terbatas, tetapi otoritas sertifikasi (CA) biasanya dikonfigurasi untuk membatasi ukuran permintaan. Atribut dapat diterapkan ke permintaan tingkat atas atau ke permintaan berlapis. Ini dibahas di bagian berikut.

Struktur CMCData

Permintaan CMC berisi urutan struktur TaggedAttribute, TaggedRequest, dan TaggedContentInfo ASN.1.

CmcData ::= SEQUENCE 
{
   controlSequence         ControlSequence,
   reqSequence             ReqSequence,
   cmsSequence             CmsSequence,
   otherMsgSequence        OtherMsgSequence
}


ControlSequence  ::=    SEQUENCE OF TaggedAttribute
ReqSequence      ::=    SEQUENCE OF TaggedRequest
CmsSequence      ::=    SEQUENCE OF TaggedContentInfo

TaggedAttribute ::= SEQUENCE 
{
   bodyPartID              BodyPartID,
   type                    EncodedObjectID,
   values                  AttributeSetValue
}

TaggedRequest ::= CHOICE 
{
   tcr                     [0] IMPLICIT TaggedCertificationRequest
}

TaggedContentInfo ::= SEQUENCE 
{
   bodyPartID              BodyPartID,
   contentInfo             ANY
}

BodyPartID ::= INTEGER (0..4294967295)
EncodedObjectID ::= OBJECT IDENTIFIER
AttributeSetValue ::= SET OF ANY

Struktur TaggedAttribute

Atribut disertakan dalam permintaan sertifikat CMC dengan menambahkannya ke koleksi TaggedAttribute . Setiap struktur dalam koleksi berisi ID bilangan bulat, pengidentifikasi objek ASN.1 (OID), dan sekumpulan nilai. Nilai yang mungkin dapat berupa salah satu dari yang berikut ini.

CmcAddAttributes ::= SEQUENCE 
{
   pkiDataReference        BodyPartID,
   certReferences          BodyPartIDSequence,
   attributes              Attributes
}

Attributes ::= SET OF Attribute
Attribute ::= SEQUENCE 
{
   type       EncodedObjectID,
   values     AttributeSetValue
}

CmcAddExtensions ::= SEQUENCE 
{
   pkiDataReference        BodyPartID,
   certReferences          BodyPartIDSequence,
   extensions              Extensions
}

Extensions ::= SEQUENCE OF Extension

Extension ::= SEQUENCE 
{
   extnId              EncodedObjectID,
   critical            BOOLEAN DEFAULT FALSE,
   extnValue           OCTETSTRING
}

SenderNonce ::= OCTET STRING

TransactID ::= OCTET STRING

RegInfo ::= OCTET STRING

CMCAddAttributes

Jika atribut dalam struktur ini berlaku untuk permintaan PKCS #10 berlapis, bidang certReferences akan berisi BodyPartID yang mengidentifikasi permintaan. Jika atribut berlaku untuk permintaan CMC berlapis, bidang pkiDataReference akan berisi BodyPartID permintaan. Saat ini, hanya salah satu bidang ini yang bisa nonzero. Atribut yang dapat disertakan tercantum dalam topik Atribut yang Didukung .

CmcAddExtensions

Struktur ini dapat berisi ekstensi X.509 versi 3 ditambah ekstensi yang ditentukan oleh Microsoft. Atribut ini didefinisikan dengan menggunakan antarmuka IX509AttributeExtensions . Jika ekstensi berlaku untuk permintaan PKCS #10 berlapis, bidang certReferences akan berisi BodyPartID yang mengidentifikasi permintaan. Jika ekstensi berlaku untuk permintaan CMC berlapis, bidang pkiDataReference akan berisi BodyPartID permintaan. Saat ini, hanya salah satu bidang ini yang bisa nonzero.

SenderNonce

Nonce adalah data biner acak atau pseudo-random yang dapat disertakan dalam permintaan sertifikat dan transaksi respons untuk membantu memastikan bahwa respons atau permintaan bukan pengulangan pesan sebelumnya. Untuk informasi selengkapnya, lihat properti SenderNonce .

TransactID

Permintaan sertifikat pulang-pergi dan transaksi respons dapat dilacak menggunakan pengidentifikasi. Klien menghasilkan ID transaksi dan menyimpannya sampai sertifikat atau otoritas pendaftaran merespons dengan pesan yang menyelesaikan transaksi. Respons mencakup pengidentifikasi. Untuk informasi selengkapnya, lihat properti TransactionId .

RegInfo

Atribut ini dapat digunakan untuk berisi informasi pendaftaran apa pun yang dipilih klien untuk dimasukkan ke dalam permintaan CMC. Nilai atribut adalah string yang berisi pasangan nilai nama yang digabungkan. Untuk informasi selengkapnya, lihat properti NameValuePairs .

Atribut yang Didukung