diff --git a/src/wolfssl/__init__.py b/src/wolfssl/__init__.py index 5f8ab83..f122d74 100644 --- a/src/wolfssl/__init__.py +++ b/src/wolfssl/__init__.py @@ -114,6 +114,17 @@ class WolfSSLX509(object): return san + def get_der(self): + outSz = _ffi.new("int *") + derPtr = _lib.wolfSSL_X509_get_der(self.native_object, outSz) + + if derPtr == _ffi.NULL: + return None + + derBytes = _ffi.buffer(derPtr, outSz[0]) + + return derBytes + class SSLContext(object): """ diff --git a/src/wolfssl/_build_ffi.py b/src/wolfssl/_build_ffi.py index 0bc15eb..a948968 100644 --- a/src/wolfssl/_build_ffi.py +++ b/src/wolfssl/_build_ffi.py @@ -108,6 +108,7 @@ ffi.cdef( */ char* wolfSSL_X509_get_subjectCN(void*); char* wolfSSL_X509_get_next_altname(void*); + const unsigned char* wolfSSL_X509_get_der(void*, int*); """ )