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 .
Topik terkait