Documentation
¶
Overview ¶
this file impls the ra <-> ca rfc4211 ?
Index ¶
- func BuildExtensions(sanLst []DN, extLst []DN) (ret []pkix.Extension, err error)
- func BuildSubject(dnLst []DN) pkix.RDNSequence
- func NewPKIBodyCRasn1(tmplLst []CertTemplate) (interface{}, error)
- func NewPKIBodyKRRasn1(tmplLst []CertTemplate) (interface{}, error)
- func NewPKIBodyKURasn1(tmplLst []CertTemplate) (interface{}, error)
- func NewPKIBodyRRasn1(tmplLst []CertTemplate, op uint8) (interface{}, error)
- type AdministrationDomainName
- type AnotherName
- type Attribute
- type AuthInfo
- type BuiltInDomainDefinedAttribute
- type BuiltInDomainDefinedAttributes
- type BuiltInStandardAttributes
- type CertOrEncCert
- type CertRepMessage
- type CertReqMessage
- type CertReqMessages
- type CertRequest
- type CertResponse
- type CertTemplate
- func (tmpl *CertTemplate) SetExtension(ext []pkix.Extension)
- func (tmpl *CertTemplate) SetPublicKeyWithCSR(der []byte) error
- func (tmpl *CertTemplate) SetPublicKeyWithRawPubichKeyInfo(der []byte) error
- func (tmpl *CertTemplate) SetSubject(seq pkix.RDNSequence)
- func (tmpl *CertTemplate) SetSubjectUID(uid []byte)
- func (tmpl *CertTemplate) SetVaidity(notBefore, notAfter time.Time)
- func (tmpl *CertTemplate) SetVersion(version int)
- type CertWithEncValue
- type Certificate
- type CertificationRequest
- type CertificationRequestInfo
- type CertifiedKeyPair
- type Controls
- type CountryName
- type DN
- type DirectoryName
- type DirectoryNameSET
- type DirectoryString
- type EDIPartyName
- type EdiPartyName
- type EncryptedValue
- type ErrorMsgContent
- type ExtensionAttribute
- type ExtensionAttributes
- type Extensions
- type GeneralName
- type InterDirectoryName
- type InterRevRepContent
- type InterState
- type KeyIdentifier
- type KeyRecRepContent
- type Name
- type NetworkAddress
- type NumericUserIdentifier
- type ORAddress
- type OptionalValidity
- type OrganizationName
- type OrganizationalUnitNames
- type PKIFailureInfo
- type PKIFreeText
- type PKIHeader
- type PKIMessage
- type PKIMessageCP
- type PKIMessageFoot
- type PKIMessageHead
- type PKIMessageKRP
- type PKIMessageKUP
- type PKIMessageRP
- type PKIProtection
- type PKIPublicationInfo
- type PKIStatus
- type PKIStatusInfo
- type PKMACValue
- type PersonalName
- type PrivateDomainName
- type ProofOfPossession
- type RevCert
- type RevDetails
- type RevRepContent
- type RevReqContent
- type SinglePubInfo
- type SubjectPublicKeyInfo
- type TerminalIdentifier
- type UniqueIdentifier
- type Version
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BuildExtensions ¶
func BuildSubject ¶
func BuildSubject(dnLst []DN) pkix.RDNSequence
func NewPKIBodyCRasn1 ¶
func NewPKIBodyCRasn1(tmplLst []CertTemplate) (interface{}, error)
func NewPKIBodyKRRasn1 ¶
func NewPKIBodyKRRasn1(tmplLst []CertTemplate) (interface{}, error)
func NewPKIBodyKURasn1 ¶
func NewPKIBodyKURasn1(tmplLst []CertTemplate) (interface{}, error)
func NewPKIBodyRRasn1 ¶
func NewPKIBodyRRasn1(tmplLst []CertTemplate, op uint8) (interface{}, error)
Types ¶
type AdministrationDomainName ¶
type AdministrationDomainName string
AdministrationDomainName ::= [APPLICATION 2] CHOICE {
numeric NumericString (SIZE (0..ub-domain-name-length)),
printable PrintableString (SIZE (0..ub-domain-name-length)) }
type AnotherName ¶
type AnotherName struct {
Value asn1.RawValue `asn1:"tag:0,explicit,optional"`
// contains filtered or unexported fields
}
AnotherName ::= SEQUENCE {
type-id OBJECT IDENTIFIER,
value [0] EXPLICIT ANY DEFINED BY type-id }
type Attribute ¶
type Attribute struct {
Type asn1.ObjectIdentifier
Values asn1.RawValue `asn1:"set"`
}
Attribute { ATTRIBUTE:IOSet } ::= SEQUENCE {
type ATTRIBUTE.&id({IOSet}),
values SET SIZE(1..MAX) OF ATTRIBUTE.&Type({IOSet}{@type})
}
type AuthInfo ¶
type AuthInfo struct {
Sender *GeneralName `asn1:"tag:0,omitempty"`
PublicKeyMac *PKMACValue `asn1:"omitempty"`
}
AuthInfo ignore pop
type BuiltInDomainDefinedAttribute ¶
BuiltInDomainDefinedAttribute ::= SEQUENCE {
type PrintableString (SIZE
(1..ub-domain-defined-attribute-type-length)),
value PrintableString (SIZE
(1..ub-domain-defined-attribute-value-length)) }
type BuiltInDomainDefinedAttributes ¶
type BuiltInDomainDefinedAttributes []BuiltInDomainDefinedAttribute
type BuiltInStandardAttributes ¶
type BuiltInStandardAttributes struct {
CountryName *CountryName `asn1:"optional,omitempty"`
AdminitrationDomainName *AdministrationDomainName `asn1:"optional,omitempty,application,tag:2"`
NetworkAddress *NetworkAddress `asn1:"tag:0,optional,omitempty"`
TerminalIdentifier *TerminalIdentifier `asn1:"tag:1,optional,omitempty,printable"`
PrivateDomainName *PrivateDomainName `asn1:"tag:2,explicit,optional,omitempty"`
OrganizationName *OrganizationName `asn1:"tag:3,optional,omitempty,printable"`
NumericUserIdentifier *NumericUserIdentifier `asn1:"tag:4,optional,omitempty"`
PersonalName *PersonalName `asn1:"tag:5,optional,omitempty,set"`
OrganizationalUnitNames *OrganizationalUnitNames `asn1:"tag:6,optional,omitempty,printable"`
}
BuiltInStandardAttributes ::= SEQUENCE {
country-name CountryName OPTIONAL,
administration-domain-name AdministrationDomainName OPTIONAL,
network-address [0] IMPLICIT NetworkAddress OPTIONAL,
-- see also extended-network-address
terminal-identifier [1] IMPLICIT TerminalIdentifier OPTIONAL,
private-domain-name [2] PrivateDomainName OPTIONAL,
organization-name [3] IMPLICIT OrganizationName OPTIONAL,
-- see also teletex-organization-name
numeric-user-identifier [4] IMPLICIT NumericUserIdentifier
OPTIONAL,
personal-name [5] IMPLICIT PersonalName OPTIONAL,
-- see also teletex-personal-name
organizational-unit-names [6] IMPLICIT OrganizationalUnitNames
OPTIONAL }
-- see also teletex-organizational-unit-names
type CertOrEncCert ¶
type CertOrEncCert struct {
Certificate certificate `asn1:"tag:0,omitempty"`
EncryptedCert EncryptedValue `asn1:"tag:1,omitempty"`
}
CertOrEncCert ::= CHOICE {
certificate [0] CMPCertificate,
encryptedCert [1] EncryptedValue }
type CertRepMessage ¶
type CertRepMessage struct {
Raw asn1.RawContent
CAPubs []Certificate `asn1:"tag:1,optional,omitempty"`
Responses []CertResponse
}
CertRepMessage ::= SEQUENCE {
caPubs [1] SEQUENCE SIZE (1..MAX) OF CMPCertificate
OPTIONAL,
response SEQUENCE OF CertResponse }
type CertReqMessage ¶
type CertReqMessage struct {
CertReq CertRequest
RegInfo []pkix.AttributeTypeAndValue `asn1:"optional,omitempty"`
}
CertReqMessage . https://www.ietf.org/rfc/rfc4211.txt
CertReqMsg ::= SEQUENCE {
certReq CertRequest,
popo ProofOfPossession OPTIONAL,
-- content depends upon key type
regInfo SEQUENCE SIZE(1..MAX) of AttributeTypeAndValue OPTIONAL
}
type CertReqMessages ¶
type CertReqMessages []CertReqMessage
type CertRequest ¶
type CertRequest struct {
CertReqID int
CertTemplate CertTemplate
Controls Controls `asn1:"optional,omitempty"`
}
CertRequest ::= SEQUENCE {
certReqId INTEGER, -- ID for matching request and reply
certTemplate CertTemplate, --Selected fields of cert to be issued
controls Controls OPTIONAL } -- Attributes affecting issuance
type CertResponse ¶
type CertResponse struct {
Raw asn1.RawContent
CertReqID int
Status PKIStatusInfo
CertifiedKeyPair CertifiedKeyPair
RespInfo []byte
}
func (CertResponse) GetCertWithEncValue ¶
func (resp CertResponse) GetCertWithEncValue() (*CertWithEncValue, error)
func (CertResponse) OK ¶
func (resp CertResponse) OK() bool
type CertTemplate ¶
type CertTemplate struct {
Version Version `asn1:"explicit,optional,tag:0"`
SerialNumber *big.Int `asn1:"explicit,optional,tag:1"`
//SigningAlg pkix.AlgorithmIdentifier `asn1:"optional,tag:2"`
Issuer Name `asn1:"optional,tag:3"`
Validity OptionalValidity `asn1:"optional,explicit,tag:4"`
Subject Name `asn1:"optional,tag:5"`
PublicKey SubjectPublicKeyInfo `asn1:"optional,explicit,tag:6"`
IssuerUID UniqueIdentifier `asn1:"optional,tag:7"`
SubjectUID UniqueIdentifier `asn1:"optional,explicit,tag:8"`
Extensions Extensions `asn1:"explicit,optional,tag:9"`
}
func NewCertTemplate ¶
func NewCertTemplate(serialNumber *big.Int) *CertTemplate
func (*CertTemplate) SetExtension ¶
func (tmpl *CertTemplate) SetExtension(ext []pkix.Extension)
func (*CertTemplate) SetPublicKeyWithCSR ¶
func (tmpl *CertTemplate) SetPublicKeyWithCSR(der []byte) error
func (*CertTemplate) SetPublicKeyWithRawPubichKeyInfo ¶
func (tmpl *CertTemplate) SetPublicKeyWithRawPubichKeyInfo(der []byte) error
func (*CertTemplate) SetSubject ¶
func (tmpl *CertTemplate) SetSubject(seq pkix.RDNSequence)
func (*CertTemplate) SetSubjectUID ¶
func (tmpl *CertTemplate) SetSubjectUID(uid []byte)
func (*CertTemplate) SetVaidity ¶
func (tmpl *CertTemplate) SetVaidity(notBefore, notAfter time.Time)
func (*CertTemplate) SetVersion ¶
func (tmpl *CertTemplate) SetVersion(version int)
type CertWithEncValue ¶
type CertWithEncValue struct {
EncPriv *EncryptedValue
Cert *x509.Certificate
}
type Certificate ¶
type Certificate struct {
Raw asn1.RawContent
}
func (Certificate) ToX590Certificate ¶
func (cert Certificate) ToX590Certificate() (*x509.Certificate, error)
type CertificationRequest ¶
type CertificationRequest struct {
CertificationRequestInfo CertificationRequestInfo
SignatureAlgorithm pkix.AlgorithmIdentifier
Signature asn1.BitString
}
CertificationRequest ::= SEQUENCE {
certificationRequestInfo CertificationRequestInfo,
signatureAlgorithm AlgorithmIdentifier{{ SignatureAlgorithms }},
signature BIT STRING
}
type CertificationRequestInfo ¶
type CertificationRequestInfo struct {
Version int `asn1:"default:0"`
Subject Name
SubjectPKInfo SubjectPublicKeyInfo
Attributes []Attribute `asn1:"tag:0,set"`
}
CertificationRequestInfo ::= SEQUENCE {
version INTEGER { v1(0) } (v1,...),
subject Name,
subjectPKInfo SubjectPublicKeyInfo{{ PKInfoAlgorithms }},
attributes [0] Attributes{{ CRIAttributes }}
}
type CertifiedKeyPair ¶
type CertifiedKeyPair struct {
Cert Certificate
//EncCert Certificate
PrivateKey EncryptedValue
PublicationInfo PKIPublicationInfo
}
CertifiedKeyPair ::= SEQUENCE {
certOrEncCert CertOrEncCert,
privateKey [0] EncryptedValue OPTIONAL,
-- see [RFC4211] for comment on encoding
publicationInfo [1] PKIPublicationInfo OPTIONAL }
type Controls ¶
type Controls []pkix.AttributeTypeAndValue
type CountryName ¶
type DirectoryName ¶
type DirectoryName struct {
Id asn1.ObjectIdentifier
Value string
}
type DirectoryNameSET ¶
type DirectoryNameSET struct {
DirectoryNames []DirectoryName `asn1:"set"`
}
type DirectoryString ¶
type DirectoryString string
DirectoryString ::= CHOICE {
teletexString TeletexString (SIZE (1N..MAX)),
printableString PrintableString (SIZE (1..MAX)),
universalString UniversalString (SIZE (1..MAX)),
utf8String UTF8String (SIZE (1..MAX)),
bmpString BMPString (SIZE (1..MAX)) }
type EDIPartyName ¶
type EDIPartyName struct {
Assigner *DirectoryString `asn1:"tag:0,optonal,omitempty"`
PartyName *DirectoryString `asn1:"tag:1"`
}
EDIPartyName ::= SEQUENCE {
nameAssigner [0] DirectoryString OPTIONAL,
partyName [1] DirectoryString }
type EdiPartyName ¶
type EdiPartyName struct {
NameAssigner string `asn1:"optional,tag:0"`
PartyName DirectoryString
}
EDIPartyName ::= SEQUENCE {
nameAssigner [0] DirectoryString OPTIONAL,
partyName [1] DirectoryString }
type EncryptedValue ¶
type EncryptedValue struct {
Raw asn1.RawContent
IntendedAlg pkix.AlgorithmIdentifier `asn1:"explicit,tag:0,optional,omitempty"`
SymmAlg pkix.AlgorithmIdentifier `asn1:"explicit,tag:1,optional,omitempty"`
EncSymmKey asn1.BitString `asn1:"explicit,tag:2,optional,omitempty"`
KeyAlg pkix.AlgorithmIdentifier `asn1:"explicit,tag:3,optional,omitempty"`
ValueHint []byte `asn1:"explicit,tag:4,optional,omitempty"`
EncValue asn1.BitString
}
EncryptedValue ::= SEQUENCE {
intendedAlg [0] AlgorithmIdentifier{ALGORITHM, {...}} OPTIONAL,
-- the intended algorithm for which the value will be used
symmAlg [1] AlgorithmIdentifier{ALGORITHM, {...}} OPTIONAL,
-- the symmetric algorithm used to encrypt the value
encSymmKey [2] BIT STRING OPTIONAL,
-- the (encrypted) symmetric key used to encrypt the value
keyAlg [3] AlgorithmIdentifier{ALGORITHM, {...}} OPTIONAL,
-- algorithm used to encrypt the symmetric key
valueHint [4] OCTET STRING OPTIONAL,
-- a brief description or identifier of the encValue content
-- (may be meaningful only to the sending entity, and used only
-- if EncryptedValue might be re-examined by the sending entity
-- in the future)
encValue BIT STRING }
-- the encrypted value itself
-- When EncryptedValue is used to carry a private key (as opposed to
-- a certificate), implementations MUST support the encValue field
-- containing an encrypted PrivateKeyInfo as defined in [PKCS11],
-- section 12.11. If encValue contains some other format/encoding
-- for the private key, the first octet of valueHint MAY be used
-- to indicate the format/encoding (but note that the possible values
-- of this octet are not specified at this time). In all cases, the
-- intendedAlg field MUST be used to indicate at least the OID of
-- the intended algorithm of the private key, unless this information
-- is known a priori to both sender and receiver by some other means.
type ErrorMsgContent ¶
type ErrorMsgContent struct {
PKIStatusInfo PKIStatusInfo
ErrorCode int `asn1:"optional"`
ErrporDetail PKIFreeText `asn1:"optional"`
}
ErrorMsgContent .
type ExtensionAttribute ¶
ExtensionAttribute ::= SEQUENCE {
extension-attribute-type [0] IMPLICIT INTEGER
(0..ub-extension-attributes),
extension-attribute-value [1]
ANY DEFINED BY extension-attribute-type }
type ExtensionAttributes ¶
type ExtensionAttributes []ExtensionAttribute
type Extensions ¶
Extension ::= SEQUENCE {
extnID OBJECT IDENTIFIER,
critical BOOLEAN DEFAULT FALSE,
extnValue OCTET STRING }
type Extension struct {
ExtnID asn1.ObjectIdentifier
Critical bool
ExtnValue []byte
}
type GeneralName ¶
type GeneralName struct {
Raw asn1.RawContent
OtherName *AnotherName `asn1:"tag:0,optional,omitempty"`
RFC822Name *string `asn1:"tag:1,ia5,optional,omitempty"`
DNSName *string `asn1:"tag:2,ia5,optional,omitempty"`
X400Address *ORAddress `asn1:"tag:3,optional,omitempty"`
DirectoryName Name `asn1:"tag:4,optional,omitempty"`
EdiPartyName *EdiPartyName `asn1:"tag:5,optional,omitempty"`
UniformResourceIdentifier string `asn1:"tag:6,ia5,optional,omitempty"`
IPAddress []byte `asn1:"tag:7,optional,omitempty"`
RegisteredID asn1.ObjectIdentifier `asn1:"tag:8,optional,omitempty"`
}
GeneralName ::= CHOICE {
otherName [0] AnotherName,
rfc822Name [1] IA5String,
dNSName [2] IA5String,
x400Address [3] ORAddress,
directoryName [4] Name,
ediPartyName [5] EDIPartyName,
uniformResourceIdentifier [6] IA5String,
iPAddress [7] OCTET STRING,
registeredID [8] OBJECT IDENTIFIER }
type InterDirectoryName ¶
type InterDirectoryName struct {
InterDirectoryNameSET DirectoryNameSET
}
type InterRevRepContent ¶
type InterRevRepContent struct {
RevRepContent RevRepContent
}
type InterState ¶
type InterState struct {
PKIStatusInfo PKIStatusInfo
}
type KeyRecRepContent ¶
type KeyRecRepContent struct {
Raw asn1.RawContent
Status PKIStatusInfo
NewSigCert Certificate
CACerts []Certificate
KeyPairHist []CertifiedKeyPair
}
KeyRecRepContent shall come from keyRecRepContent lower, raw
type Name ¶
type Name struct {
RDNSequence pkix.RDNSequence
}
type NetworkAddress ¶
type NetworkAddress string
type NumericUserIdentifier ¶
type NumericUserIdentifier string
type ORAddress ¶
type ORAddress struct {
StandardAttrs *BuiltInStandardAttributes
DomainDefinedAttrs *BuiltInDomainDefinedAttributes `asn1:"optional,omitempty"`
ExtensionAttris *ExtensionAttributes `asn1:"optional,omitempty,set"`
}
ORAddress ::= SEQUENCE {
built-in-standard-attributes BuiltInStandardAttributes,
built-in-domain-defined-attributes
BuiltInDomainDefinedAttributes OPTIONAL,
-- see also teletex-domain-defined-attributes
extension-attributes ExtensionAttributes OPTIONAL }
type OptionalValidity ¶
type OptionalValidity struct {
NotBefore time.Time `asn1:"generalized,explicit,tag:0"`
NotAfter time.Time `asn1:"generalized,explicit,tag:1"`
}
OptionalValidity ::= SEQUENCE {
notBefore [0] Time OPTIONAL,
notAfter [1] Time OPTIONAL }
type OrganizationName ¶
type OrganizationName string
type OrganizationalUnitNames ¶
type OrganizationalUnitNames []string
type PKIFreeText ¶
PKIFreeText ::= SEQUENCE SIZE (1..MAX) OF UTF8String
-- text encoded as UTF-8 String [RFC3629] (note: each -- UTF8String MAY include an [RFC3066] language tag -- to indicate the language of the contained text -- see [RFC2482] for details)
type PKIHeader ¶
type PKIHeader struct {
Raw asn1.RawContent
PVNO int `asn1:"default:1"`
Sender interface{} //GeneralName
Recipient interface{} //GeneralName
MessageTime time.Time `asn1:"generalized,explicit,optional,tag:0,omitempty"`
ProtectionAlg pkix.AlgorithmIdentifier `asn1:"explicit,optional,tag:1,omitempty"`
//SendKID *KeyIdentifier `asn1:"optional,tag:2,omitempty"`
//RecipKID *KeyIdentifier `asn1:"optional,tag:3,omitempty"`
TransactionID []byte `asn1:"optional,explicit,tag:4,omitempty"`
SenderNonce []byte `asn1:"optional,tag:5,omitempty"`
RecipNonce []byte `asn1:"optional,tag:6,omitempty"`
FreeText []string `asn1:"explicit,tag:7"`
GeneralInfo []pkix.AttributeTypeAndValue `asn1:"optional,tag:8,omitempty"`
}
PKIHeader .
func NewPKIHeader ¶
func NewPKIHeader() *PKIHeader
func (*PKIHeader) SetProtectionAlg ¶
func (h *PKIHeader) SetProtectionAlg(alg pkix.AlgorithmIdentifier)
type PKIMessage ¶
type PKIMessage struct {
Raw asn1.RawContent
Header PKIHeader
Body interface{} // PKIBody
Protection PKIProtection `asn1:"explicit,optional,tag:0,omitempty"`
ExtraCerts []Certificate `asn1:"tag:1,omitempty"`
}
PKIMessage .
func (*PKIMessage) SerializeAsn1 ¶
func (msg *PKIMessage) SerializeAsn1() ([]byte, error)
func (*PKIMessage) SerializeB64 ¶
func (msg *PKIMessage) SerializeB64() (string, error)
func (*PKIMessage) SetBody ¶
func (msg *PKIMessage) SetBody(body interface{})
func (*PKIMessage) SetProtection ¶
func (msg *PKIMessage) SetProtection(b []byte)
type PKIMessageCP ¶
type PKIMessageCP struct {
PKIMessageHead
Body CertRepMessage `asn1:"explicit,tag:3"`
PKIMessageFoot
}
func ParsePKIBodyCP ¶
func ParsePKIBodyCP(raw []byte) (*PKIMessageCP, error)
func (*PKIMessageCP) GetCertWithEncValueLst ¶
func (cp *PKIMessageCP) GetCertWithEncValueLst() ([]*CertWithEncValue, error)
type PKIMessageFoot ¶
type PKIMessageFoot struct {
Protection PKIProtection `asn1:"explicit,optional,tag:0,omitempty"`
ExtraCerts []*x509.Certificate `asn1:"tag:1"`
}
func (*PKIMessageFoot) VerifyByRoot ¶
func (msg *PKIMessageFoot) VerifyByRoot(pool *x509.CertPool) error
type PKIMessageHead ¶
type PKIMessageHead struct {
Raw asn1.RawContent
Header PKIHeader
}
type PKIMessageKRP ¶
type PKIMessageKRP struct {
PKIMessageHead
Body KeyRecRepContent
PKIMessageFoot
}
func ParsePKIBodyKRP ¶
func ParsePKIBodyKRP(raw []byte) (*PKIMessageKRP, error)
func (*PKIMessageKRP) FailInfo ¶
func (krp *PKIMessageKRP) FailInfo() string
func (*PKIMessageKRP) GetCertWithEncValueLst ¶
func (krp *PKIMessageKRP) GetCertWithEncValueLst() ([]*CertWithEncValue, error)
func (*PKIMessageKRP) StatusOK ¶
func (krp *PKIMessageKRP) StatusOK() bool
type PKIMessageKUP ¶
type PKIMessageKUP struct {
PKIMessageHead
Body CertRepMessage `asn1:"explicit,tag:8"`
PKIMessageFoot
}
func ParsePKIBodyKUP ¶
func ParsePKIBodyKUP(raw []byte) (*PKIMessageKUP, error)
func (*PKIMessageKUP) GetCertWithEncValueLst ¶
func (kup *PKIMessageKUP) GetCertWithEncValueLst() ([]*CertWithEncValue, error)
type PKIMessageRP ¶
type PKIMessageRP struct {
PKIMessageHead
Body RevRepContent `asn1:"explicit,optional,tag:12"`
PKIMessageFoot
}
func ParsePKIBodyRP ¶
func ParsePKIBodyRP(raw []byte) (*PKIMessageRP, error)
func (*PKIMessageRP) FailInfo ¶
func (rp *PKIMessageRP) FailInfo() string
func (*PKIMessageRP) StatusOK ¶
func (rp *PKIMessageRP) StatusOK() bool
type PKIProtection ¶
type PKIPublicationInfo ¶
type PKIPublicationInfo struct {
Action int
PubInfos []SinglePubInfo `asn1:"optional,omitempty"`
}
PKIPublicationInfo ::= SEQUENCE {
action INTEGER {
dontPublish (0),
pleasePublish (1) },
pubInfos SEQUENCE SIZE (1..MAX) OF SinglePubInfo OPTIONAL }
-- pubInfos MUST NOT be present if action is "dontPublish"
-- (if action is "pleasePublish" and pubInfos is omitted,
-- "dontCare" is assumed)
type PKIStatus ¶
type PKIStatus int
PKIStatus ::= INTEGER {
accepted (0),
-- you got exactly what you asked for
grantedWithMods (1),
-- you got something like what you asked for; the
-- requester is responsible for ascertaining the differences
rejection (2),
-- you don't get it, more information elsewhere in the message
waiting (3),
-- the request body part has not yet been processed; expect to
-- hear more later (note: proper handling of this status
-- response MAY use the polling req/rep PKIMessages specified
-- in Section 5.3.22; alternatively, polling in the underlying
-- transport layer MAY have some utility in this regard)
revocationWarning (4),
-- this message contains a warning that a revocation is
-- imminent
revocationNotification (5),
-- notification that a revocation has occurred
keyUpdateWarning (6)
-- update already done for the oldCertId specified in
-- CertReqMsg
}
type PKIStatusInfo ¶
type PKIStatusInfo struct {
Raw asn1.RawContent
Status PKIStatus
StatusString PKIFreeText `asn1:"optional,omitempty"`
FailInfo asn1.BitString `asn1:"optional,omitempty"`
}
PKIStatusInfo .
type PKMACValue ¶
type PKMACValue struct {
AlgID pkix.AlgorithmIdentifier
Value []byte
}
PKMACValue ::= SEQUENCE { algId AlgorithmIdentifier, -- algorithm value shall be PasswordBasedMac {1 2 840 113533 7 66 13} -- parameter value is PBMParameter value BIT STRING }
type PersonalName ¶
type PersonalName struct {
SurName string `asn1:"tag:0"`
GivenName string `asn1:"optional,tag:1"`
Initials string `asn1:"optional,tag:2"`
GenerationQualifier string `asn1:"optional,tag:3"`
}
PersonalName ::= SET {
surname [0] IMPLICIT PrintableString
(SIZE (1..ub-surname-length)),
given-name [1] IMPLICIT PrintableString
(SIZE (1..ub-given-name-length)) OPTIONAL,
initials [2] IMPLICIT PrintableString
(SIZE (1..ub-initials-length)) OPTIONAL,
generation-qualifier [3] IMPLICIT PrintableString
(SIZE (1..ub-generation-qualifier-length))
OPTIONAL }
type PrivateDomainName ¶
type PrivateDomainName string
type ProofOfPossession ¶
type ProofOfPossession struct {
}
type RevCert ¶
type RevCert struct {
DirectoryName InterDirectoryName `asn1:"optional,tag:4"`
SerialNumber *big.Int
}
type RevDetails ¶
type RevDetails struct {
CertDetails CertTemplate
CRLEntryDetails *Extensions `asn1:"optional,omitempty"`
RevocationReason asn1.BitString
}
RevDetails ::= SEQUENCE {
certDetails CertTemplate,
-- allows requester to specify as much as they can about
-- the cert. for which revocation is requested
-- (e.g., for cases in which serialNumber is not available)
crlEntryDetails Extensions OPTIONAL
-- requested crlEntryExtensions
}
type RevRepContent ¶
type RevRepContent struct {
Raw asn1.RawContent
RevCerts RevCert `asn1:"explicit,optional,tag:0"`
Status InterState
}
type SinglePubInfo ¶
type SinglePubInfo struct {
PubMethod int
PubLocation GeneralName `asn1:"optional,omitempty"`
}
SinglePubInfo ::= SEQUENCE {
pubMethod INTEGER {
dontCare (0),
x500 (1),
web (2),
ldap (3) },
pubLocation GeneralName OPTIONAL }
type SubjectPublicKeyInfo ¶
type SubjectPublicKeyInfo struct {
Algorithm pkix.AlgorithmIdentifier
SubjectPublicKey asn1.BitString
}
SubjectPublicKeyInfo ::= SEQUENCE {
algorithm AlgorithmIdentifier,
subjectPublicKey BIT STRING }
type TerminalIdentifier ¶
type TerminalIdentifier string
type UniqueIdentifier ¶
Click to show internal directories.
Click to hide internal directories.