Documentation
¶
Index ¶
- type AttCertVersionV1
- type Attribute
- type AttributeValue
- type AuthAttributesSET
- type AuthenticatedData
- type CMSVersion
- type ContentInfo
- type Digest
- type DigestAlgorithmIdentifiersSET
- type DigestedData
- type EncapsulatedContentInfo
- type EncryptedContent
- type EncryptedContentInfo
- type EncryptedData
- type EncryptedKey
- type EnvelopedData
- type IssuerAndSerialNumber
- type KEKIdentifier
- type KEKRecipientInfo
- type KeyAgreeRecipientInfo
- type KeyTransRecipientInfo
- type MessageAuthenticationCode
- type MessageDigest
- type OriginatorInfo
- type OriginatorPublicKey
- type OtherCertificateFormat
- type OtherKeyAttribute
- type OtherRecipientInfo
- type OtherRevocationInfoFormat
- type PasswordRecipientInfo
- type RecipientEncryptedKey
- type RecipientEncryptedKeys
- type RecipientKeyIdentifier
- type SignatureValue
- type SignedAttributesSET
- type SignedData
- type SignerInfo
- type SignerInfosSET
- type SubjectKeyIdentifier
- type UnauthAttributesSET
- type UnprotectedAttributesSET
- type UnsignedAttributesSET
- type UserKeyingMaterial
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Attribute ¶
type Attribute struct {
AttrType asn1.ObjectIdentifier
AttrValues []AttributeValue `asn1:"set"`
}
Attribute ::= SEQUENCE {
attrType OBJECT IDENTIFIER,
attrValues SET OF AttributeValue }
type AuthAttributesSET ¶
type AuthAttributesSET []Attribute
AuthAttributesSET ::= SET SIZE (1..MAX) OF Attribute
type AuthenticatedData ¶
type AuthenticatedData struct {
Version CMSVersion
OriginatorInfo OriginatorInfo `asn1:"tag:0,implicit,optional"`
RecipientInfos []asn1.RawValue
MACAlgorithm pkix.AlgorithmIdentifier
DigestAlgorithm pkix.AlgorithmIdentifier `asn1:"tag:1,explicit,optional"`
EncapContentInfo EncapsulatedContentInfo
AuthAttrs AuthAttributesSET `asn1:"tag:2,implicit,optional"`
MAC MessageAuthenticationCode
UnauthAttrs UnauthAttributesSET `asn1:"tag:3,implicit,optional"`
}
AuthenticatedData ::= SEQUENCE {
version CMSVersion,
originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
recipientInfos RecipientInfos,
macAlgorithm MessageAuthenticationCodeAlgorithm,
digestAlgorithm [1] DigestAlgorithmIdentifier OPTIONAL,
encapContentInfo EncapsulatedContentInfo,
authAttrs [2] IMPLICIT AuthAttributes OPTIONAL,
mac MessageAuthenticationCode,
unauthAttrs [3] IMPLICIT UnauthAttributes OPTIONAL }
type CMSVersion ¶
type CMSVersion int
CMSVersion ::= INTEGER { v0(0), v1(1), v2(2), v3(3), v4(4), v5(5) }
type ContentInfo ¶
type ContentInfo struct {
ContentType asn1.ObjectIdentifier
Content interface{} `asn1:"tag:0,explicit"`
}
ContentInfo ::= SEQUENCE {
contentType ContentType,
content [0] EXPLICIT ANY DEFINED BY contentType }
ContentType ::= OBJECT IDENTIFIER
type DigestAlgorithmIdentifiersSET ¶
type DigestAlgorithmIdentifiersSET []pkix.AlgorithmIdentifier
DigestAlgorithmIdentifiersSET ::= SET OF DigestAlgorithmIdentifier
type DigestedData ¶
type DigestedData struct {
Version CMSVersion
DigestAlgorithm pkix.AlgorithmIdentifier
EncapContentInfo EncapsulatedContentInfo
Digest Digest
}
DigestedData ::= SEQUENCE {
version CMSVersion,
digestAlgorithm DigestAlgorithmIdentifier,
encapContentInfo EncapsulatedContentInfo,
digest Digest }
type EncapsulatedContentInfo ¶
type EncapsulatedContentInfo struct {
EContentType asn1.ObjectIdentifier
EContent []byte `asn1:"tag:0,explicit,optional,omitempty"`
}
EncapsulatedContentInfo ::= SEQUENCE {
eContentType ContentType,
eContent [0] EXPLICIT OCTET STRING OPTIONAL }
type EncryptedContentInfo ¶
type EncryptedContentInfo struct {
ContentType asn1.ObjectIdentifier
ContentEncryptionAlgorithm pkix.AlgorithmIdentifier
EncryptedContent EncryptedContent `asn1:"implicit,tag:0,optional"`
}
EncryptedContentInfo ::= SEQUENCE {
contentType ContentType,
contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier,
encryptedContent [0] IMPLICIT EncryptedContent OPTIONAL }
type EncryptedData ¶
type EncryptedData struct {
Version CMSVersion
EncryptedContentInfo EncapsulatedContentInfo
UnprotectedAttrs UnprotectedAttributesSET `asn1:"implicit,tag:1,optional"`
}
EncryptedData ::= SEQUENCE {
version CMSVersion,
encryptedContentInfo EncryptedContentInfo,
unprotectedAttrs [1] IMPLICIT UnprotectedAttributes OPTIONAL }
type EnvelopedData ¶
type EnvelopedData struct {
Version CMSVersion
OriginatorInfo OriginatorInfo `asn1:"tag:0,implicit,optional"`
RecipientInfos []asn1.RawValue
EncryptedContentInfo EncryptedContentInfo
UnprotectedAttrs UnprotectedAttributesSET `asn1:"tag:1,implicit,optional"`
}
EnvelopedData ::= SEQUENCE {
version CMSVersion,
originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
recipientInfos RecipientInfos,
encryptedContentInfo EncryptedContentInfo,
unprotectedAttrs [1] IMPLICIT UnprotectedAttributes OPTIONAL }
type IssuerAndSerialNumber ¶
type IssuerAndSerialNumber struct {
Issuer pkix.RDNSequence
SerialNumber *big.Int
}
IssuerAndSerialNumber ::= SEQUENCE {
issuer Name,
serialNumber CertificateSerialNumber }
type KEKIdentifier ¶
type KEKIdentifier struct {
KeyIdentifier []byte
Date time.Time `asn1:"optional"`
Other OtherKeyAttribute `asn1:"optional"`
}
KEKIdentifier ::= SEQUENCE {
keyIdentifier OCTET STRING,
date GeneralizedTime OPTIONAL,
other OtherKeyAttribute OPTIONAL }
type KEKRecipientInfo ¶
type KEKRecipientInfo struct {
Version CMSVersion
Kekid KEKIdentifier
KeyEncryptionAlgorithm pkix.AlgorithmIdentifier
EncryptedKey EncryptedKey
}
KEKRecipientInfo ::= SEQUENCE {
version CMSVersion, -- always set to 4
kekid KEKIdentifier,
keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
encryptedKey EncryptedKey }
type KeyAgreeRecipientInfo ¶
type KeyAgreeRecipientInfo struct {
Version CMSVersion
Originator interface{} `asn1:"explicit,tag:0"`
Ukm UserKeyingMaterial `asn1:"explicit,tag:1,optional"`
KeyEncryptionAlgorithm pkix.AlgorithmIdentifier
RecipientEncryptedKeys RecipientEncryptedKeys
}
KeyAgreeRecipientInfo ::= SEQUENCE {
version CMSVersion, -- always set to 3
originator ::= CHOICE {
issuerAndSerialNumber IssuerAndSerialNumber,
subjectKeyIdentifier [0] SubjectKeyIdentifier,
originatorKey [1] OriginatorPublicKey } [0] EXPLICIT OriginatorIdentifierOrKey,
ukm [1] EXPLICIT UserKeyingMaterial OPTIONAL,
keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
recipientEncryptedKeys RecipientEncryptedKeys }
type KeyTransRecipientInfo ¶
type KeyTransRecipientInfo struct {
Version CMSVersion
IssuerAndSerialNumber IssuerAndSerialNumber `asn1:"optional"`
SubjectKeyIdentifier SubjectKeyIdentifier `asn1:"tag:0,optional"`
KeyEncryptionAlgorithm pkix.AlgorithmIdentifier
EncryptedKey EncryptedKey
}
KeyTransRecipientInfo ::= SEQUENCE {
version CMSVersion, -- always set to 0 or 2
rid RecipientIdentifier ::= CHOICE {
issuerAndSerialNumber IssuerAndSerialNumber,
subjectKeyIdentifier [0] SubjectKeyIdentifier }
keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
encryptedKey EncryptedKey }
type MessageAuthenticationCode ¶
type MessageAuthenticationCode []byte
MessageAuthenticationCode ::= OCTET STRING
type OriginatorInfo ¶
type OriginatorInfo struct {
Certs []asn1.RawValue `asn1:"tag:0,implicit,optional"`
Crls []asn1.RawValue `asn1:"tag:1,implicit,optional"`
}
OriginatorInfo ::= SEQUENCE {
certs [0] IMPLICIT CertificateSet OPTIONAL,
crls [1] IMPLICIT RevocationInfoChoices OPTIONAL }
type OriginatorPublicKey ¶
type OriginatorPublicKey struct {
Algorithm pkix.AlgorithmIdentifier
PublicKey asn1.BitString
}
OriginatorPublicKey ::= SEQUENCE {
algorithm AlgorithmIdentifier,
publicKey BIT STRING }
type OtherCertificateFormat ¶
type OtherCertificateFormat struct {
OtherCertFormat asn1.ObjectIdentifier
OtherCert interface{}
}
OtherCertificateFormat ::= SEQUENCE {
otherCertFormat OBJECT IDENTIFIER,
otherCert ANY DEFINED BY otherCertFormat }
type OtherKeyAttribute ¶
type OtherKeyAttribute struct {
KeyAttrID asn1.ObjectIdentifier
KeyAttr asn1.RawValue `asn1:"optional"`
}
OtherKeyAttribute ::= SEQUENCE {
keyAttrId OBJECT IDENTIFIER,
keyAttr ANY DEFINED BY keyAttrId OPTIONAL }
type OtherRecipientInfo ¶
type OtherRecipientInfo struct {
OriType asn1.ObjectIdentifier
OriValue interface{}
}
OtherRecipientInfo ::= SEQUENCE {
oriType OBJECT IDENTIFIER,
oriValue ANY DEFINED BY oriType }
type OtherRevocationInfoFormat ¶
type OtherRevocationInfoFormat struct {
OtherRevInfoFormat asn1.ObjectIdentifier
OtherRevInfo interface{}
}
OtherRevocationInfoFormat ::= SEQUENCE {
otherRevInfoFormat OBJECT IDENTIFIER,
otherRevInfo ANY DEFINED BY otherRevInfoFormat }
type PasswordRecipientInfo ¶
type PasswordRecipientInfo struct {
Version CMSVersion
KeyDerivationAlgorithm pkix.AlgorithmIdentifier `asn1:"implicit,tag:0,optional"`
KeyEncryptionAlgorithm pkix.AlgorithmIdentifier
EncryptedKey EncryptedKey
}
PasswordRecipientInfo ::= SEQUENCE {
version CMSVersion, -- always set to 0
keyDerivationAlgorithm [0] KeyDerivationAlgorithmIdentifier
OPTIONAL,
keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
encryptedKey EncryptedKey }
type RecipientEncryptedKey ¶
type RecipientEncryptedKey struct {
IssuerAndSerialNumber IssuerAndSerialNumber `asn1:"optional"`
RKeyID RecipientKeyIdentifier `asn1:"implicit,tag:0,optional"`
EncryptedKey EncryptedKey
}
RecipientEncryptedKey ::= SEQUENCE {
rid ::= CHOICE {
issuerAndSerialNumber IssuerAndSerialNumber,
rKeyId [0] IMPLICIT RecipientKeyIdentifier }
encryptedKey EncryptedKey }
type RecipientEncryptedKeys ¶
type RecipientEncryptedKeys []RecipientEncryptedKey
RecipientEncryptedKeys ::= SEQUENCE OF RecipientEncryptedKey
type RecipientKeyIdentifier ¶
type RecipientKeyIdentifier struct {
SubjectKeyIdentifier SubjectKeyIdentifier
Date time.Time
Other OtherKeyAttribute `asn1:"optional"`
}
RecipientKeyIdentifier ::= SEQUENCE {
subjectKeyIdentifier SubjectKeyIdentifier,
date GeneralizedTime OPTIONAL,
other OtherKeyAttribute OPTIONAL }
type SignedAttributesSET ¶
type SignedAttributesSET []Attribute
SignedAttributesSET ::= SET SIZE (1..MAX) OF Attribute
type SignedData ¶
type SignedData struct {
Version CMSVersion
DigestAlgorithms DigestAlgorithmIdentifiersSET
EncapContentInfo EncapsulatedContentInfo
Certificates []asn1.RawValue `asn1:"implicit,tag:0,optional"`
Crls []asn1.RawValue `asn1:"implicit,tag:1,optional"`
SignerInfos SignerInfosSET
}
SignedData ::= SEQUENCE {
version CMSVersion,
digestAlgorithms DigestAlgorithmIdentifiers,
encapContentInfo EncapsulatedContentInfo,
certificates [0] IMPLICIT CertificateSet OPTIONAL,
crls [1] IMPLICIT RevocationInfoChoices OPTIONAL,
signerInfos SignerInfos }
type SignerInfo ¶
type SignerInfo struct {
Version CMSVersion
IssuerAndSerialNumber IssuerAndSerialNumber `asn1:"optional"`
SubjectKeyIdentifier SubjectKeyIdentifier `asn1:"tag:0,implicit,optional"`
DigestAlgorithmIdentifier pkix.AlgorithmIdentifier
SignedAttrs SignedAttributesSET `asn1:"tag:0,implicit,optional"`
SignatureAlgorithm pkix.AlgorithmIdentifier
Signature SignatureValue
UnsignedAttributes UnsignedAttributesSET `asn1:"tag:1,implicit,optional"`
}
SignerInfo ::= SEQUENCE {
version CMSVersion,
sid SignerIdentifier ::= CHOICE {
issuerAndSerialNumber IssuerAndSerialNumber,
subjectKeyIdentifier [0] SubjectKeyIdentifier }
digestAlgorithm DigestAlgorithmIdentifier,
signedAttrs [0] IMPLICIT SignedAttributes OPTIONAL,
signatureAlgorithm SignatureAlgorithmIdentifier,
signature SignatureValue,
unsignedAttrs [1] IMPLICIT UnsignedAttributes OPTIONAL }
type UnauthAttributesSET ¶
type UnauthAttributesSET []Attribute
UnauthAttributesSET ::= SET SIZE (1..MAX) OF Attribute
type UnprotectedAttributesSET ¶
type UnprotectedAttributesSET []Attribute
UnprotectedAttributesSET ::= SET SIZE (1..MAX) OF Attribute
type UnsignedAttributesSET ¶
type UnsignedAttributesSET []Attribute
UnsignedAttributesSET ::= SET SIZE (1..MAX) OF Attribute
Click to show internal directories.
Click to hide internal directories.