From 66d50363460292fd3ab58b58471fcbc1928f92c4 Mon Sep 17 00:00:00 2001 From: Mosen Date: Tue, 19 Jul 2016 22:41:36 +1000 Subject: [PATCH] Use byte field for certificate data. --- certificates/certificate.go | 14 ++++++-------- connect/service.go | 11 ++++++++++- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/certificates/certificate.go b/certificates/certificate.go index d3875209..b053995d 100644 --- a/certificates/certificate.go +++ b/certificates/certificate.go @@ -1,13 +1,11 @@ package certificates -import ( - "crypto/x509" -) +import () type Certificate struct { - UUID string `db:"certificate_uuid" json:"uuid"` - DeviceUUID string `db:"device_uuid" json:"device_uuid"` - Data x509.Certificate `db:"data" json:"data"` - CommonName string `db:"common_name" json:"common_nane"` - IsIdentity bool `db:"is_identity" json:"is_identity"` + UUID string `db:"certificate_uuid" json:"uuid"` + DeviceUUID string `db:"device_uuid" json:"device_uuid"` + Data []byte `db:"data" json:"data"` + CommonName string `db:"common_name" json:"common_nane"` + IsIdentity bool `db:"is_identity" json:"is_identity"` } diff --git a/connect/service.go b/connect/service.go index 9f92efb9..0e7e416b 100644 --- a/connect/service.go +++ b/connect/service.go @@ -1,6 +1,7 @@ package connect import ( + "crypto/x509" "database/sql" "encoding/json" "fmt" @@ -252,11 +253,19 @@ func (svc service) ackCertificateList(req mdm.Response) error { return errors.Wrap(err, "getting a device record by udid") } + var certData *x509.Certificate for _, cert := range req.CertificateList { + + if certData, err = x509.ParseCertificate(cert.Data); err != nil { + return errors.Wrap(err, "decoding device certificate") + } + + fmt.Printf("%s\n", certData.Subject) + newCert := certificates.Certificate{ CommonName: cert.CommonName, IsIdentity: cert.IsIdentity, - //Data: cert.Data, + Data: cert.Data, DeviceUUID: device.UUID, }