import "crypto/x509"
ITU-T勧告X.509エンコードの鍵と証明書を解析します。
パッケージファイル
x509.go
CreateCertificate関数
func CreateCertificate(rand io.Reader, template, parent *Certificate, pub *rsa.PublicKey, priv *rsa.PrivateKey) (cert []byte, err os.Error)
CreateSelfSignedCertificateは、テンプレートをベースに新しい証明書を作成します。テンプレートの以下のメンバーが使われます:SerialNumber, Subject, NotBefore, NotAfter, KeyUsage, BasicConstraintsValid, IsCA, MaxPathLen, SubjectKeyId, DNSNames
証明書は、parentによって署名されます。parentとテンプレートが同一のとき証明書は自己署名されます。パラメータpubは、署名者の公開鍵、privは、署名者の秘密鍵です。
返されるスライスは、DER符号化された証明書です。
MarshalPKCS1PrivateKey関数
func MarshalPKCS1PrivateKey(key *rsa.PrivateKey) []byte
MarshalPKCS1PrivateKeyは、秘密鍵をASN.1 DERエンコード形式に変換します。
ParseCertificates関数
func ParseCertificates(asn1Data []byte) ([]*Certificate, os.Error)
ParseCertificatesは、与えられたASN.1 DERデータから一つ以上の証明書を解析します。証明書は間にパディングなしで連結されていなければなりません。
ParsePKCS1PrivateKey関数
func ParsePKCS1PrivateKey(der []byte) (key *rsa.PrivateKey, err os.Error)
ParsePKCS1PrivateKeyは、ASN.1 PKCS#1 DER形式内のRSA秘密鍵を返します。
Certificate型
Certificateは、X.509 証明書を表します。
type Certificate struct {
Raw []byte // Raw ASN.1 DER contents.
Signature []byte
SignatureAlgorithm SignatureAlgorithm
PublicKeyAlgorithm PublicKeyAlgorithm
PublicKey interface{}
Version int
SerialNumber []byte
Issuer Name
Subject Name
NotBefore, NotAfter *time.Time // Validity bounds.
KeyUsage KeyUsage
BasicConstraintsValid bool // if true then the next two fields are valid.
IsCA bool
MaxPathLen int
SubjectKeyId []byte
AuthorityKeyId []byte
// Subject Alternate Name values
DNSNames []string
EmailAddresses []string
}
ParseCertificate関数
func ParseCertificate(asn1Data []byte) (*Certificate, os.Error)
ParseCertificateは、与えられたASN.1 DERデータから証明書をひとつ解析します。
(*Certificate) CheckSignatureFrom関数
func (c *Certificate) CheckSignatureFrom(parent *Certificate) (err os.Error)
CheckSignatureFromは、cの署名がparentからの有効な署名であることを確認します。
(*Certificate) IsValidForHost関数
func (c *Certificate) IsValidForHost(h string) bool
IsValidForHostは、cがhostに対して有効な証明書であるときtrueを返します。
ConstraintViolationError型
ConstraintViolationErrorは、要求した使い方が証明書で許されていないときに発生します。例:証明書に署名できない公開鍵で、署名を確認しようとすると発生します。
type ConstraintViolationError struct{}
(ConstraintViolationError) String関数
func (ConstraintViolationError) String() string
KeyUsage型
KeyUsageは、与えられたキーに有効なアクションのセットを表します。これはKeyUsage*定数のビットマップです。
type KeyUsage int
const (
KeyUsageDigitalSignature KeyUsage = 1 << iota
KeyUsageContentCommitment
KeyUsageKeyEncipherment
KeyUsageDataEncipherment
KeyUsageKeyAgreement
KeyUsageCertSign
KeyUsageCRLSign
KeyUsageEncipherOnly
KeyUsageDecipherOnly
)
Name型
Nameは、X.509識別名(DN)を表します。
これはDNの一般的な要素だけを含んでいます。それ以外の要素は無視されます。
type Name struct {
Country, Organization, OrganizationalUnit string
CommonName, SerialNumber, Locality string
Province, StreetAddress, PostalCode string
}
PublicKeyAlgorithm型
type PublicKeyAlgorithm int
const (
UnknownPublicKeyAlgorithm PublicKeyAlgorithm = iota
RSA
)
SignatureAlgorithm型
type SignatureAlgorithm int
const (
UnknownSignatureAlgorithm SignatureAlgorithm = iota
MD2WithRSA
MD5WithRSA
SHA1WithRSA
SHA256WithRSA
SHA384WithRSA
SHA512WithRSA
)
UnhandledCriticalExtension型
type UnhandledCriticalExtension struct{}
(UnhandledCriticalExtension) String関数
func (h UnhandledCriticalExtension) String() string
UnsupportedAlgorithmError型
UnsupportedAlgorithmErrorは、現在実装されていないアルゴリズムを使った操作を実行しようとしたときに発生します。
type UnsupportedAlgorithmError struct{}
(UnsupportedAlgorithmError) String関数
func (UnsupportedAlgorithmError) String() string
Trackback URL
Comments