From 754bf832c4386b8dc7f9ed1d57783b4b8414b797 Mon Sep 17 00:00:00 2001 From: JT Olds Date: Fri, 28 Feb 2014 09:43:31 -0700 Subject: [PATCH] space monkey internal commit export [katamari commit: a6b35c2de3656d9e8b3654d78a850fa050652b1d] --- pem.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/pem.go b/pem.go index 4f78e09..b04fbf0 100644 --- a/pem.go +++ b/pem.go @@ -5,6 +5,8 @@ package openssl // #include // #include +// +// void OPENSSL_free_not_a_macro(void *ref) { OPENSSL_free(ref); } import "C" import ( @@ -202,3 +204,14 @@ func (c *Certificate) PublicKey() (PublicKey, error) { }) return key, nil } + +// GetSerialNumberHex returns the certificate's serial number in hex format +func (c *Certificate) GetSerialNumberHex() (serial string) { + asn1_i := C.X509_get_serialNumber(c.x) + bignum := C.ASN1_INTEGER_to_BN(asn1_i, nil) + hex := C.BN_bn2hex(bignum) + serial = C.GoString(hex) + C.BN_free(bignum) + C.OPENSSL_free_not_a_macro(unsafe.Pointer(hex)) + return +}