From 09a8380b7a4165bb4004f4d3efe87ac1fa151be9 Mon Sep 17 00:00:00 2001 From: Gibheer Date: Sun, 15 Mar 2015 20:06:47 +0100 Subject: [PATCH] first draft of a certificate system --- certificate.go | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 certificate.go diff --git a/certificate.go b/certificate.go new file mode 100644 index 0000000..6537173 --- /dev/null +++ b/certificate.go @@ -0,0 +1,45 @@ +package pki + +import ( +// "crypto/x509/pkix" + "errors" + "net" +) + +var ( + ErrTypeMisMatch = errors.New("types mismatched") +) + +type ( + CertificateData struct { + // required fields + SerialNumber string + CommonName string + + // alternative data + DNSNames []string + EmailAddresses []string + IPAddresses []net.IP + + // address data + Country []string + Province []string + Locality []string + PostalCode []string + StreetAddress []string + Organization []string + OrganizationalUnit []string + } +) + +// create a certificate sign request with the certificate data +//func (c *CertificateData) CreateCertificateRequest(priv PrivateKey) (*Certificate, error) { +// csr := x509.CertificateRequest{} +// csr.Subject := c.createSubject() +//} +// +//// create a pkix.Name for the subject of a cert or csr +//func (c *CertificateData) createSubject() (pkix.Name) { +// name := pkix.Name{} +// errors := make([]error, 0) +//}