]> gitweb.factorcode.org Git - factor.git/commitdiff
io.sockets.secure.openssl: support for getting issuer name
authorBjörn Lindqvist <bjourne@gmail.com>
Mon, 9 Sep 2013 21:59:40 +0000 (23:59 +0200)
committerJohn Benediktsson <mrjbq7@gmail.com>
Tue, 17 Sep 2013 00:17:47 +0000 (17:17 -0700)
basis/io/sockets/secure/openssl/openssl.factor
basis/openssl/libssl/libssl.factor

index 49b9820574c284c4f7cdfdaeb893a655608e8a1b..a0eae9e717891d66dfde5e2539e1aaf57c92a3d4 100644 (file)
@@ -170,12 +170,17 @@ M: ssl-handle dispose*
     SSL_get_verify_result dup X509_V_OK =
     [ drop ] [ verify-message certificate-verify-error ] if ;
 
-: common-name ( certificate -- host )
-    X509_get_subject_name
+: x509name>string ( x509name -- string )
     NID_commonName 256 <byte-array>
     [ 256 X509_NAME_get_text_by_NID ] keep
     swap -1 = [ drop f ] [ latin1 alien>string ] if ;
 
+: common-name ( certificate -- host )
+    X509_get_subject_name x509name>string ;
+
+: issuer-name ( certificate -- issuer )
+    X509_get_issuer_name x509name>string ;
+
 : common-names-match? ( expected actual -- ? )
     [ >lower ] bi@ "*." ?head [ tail? ] [ = ] if ;
 
index efef9f3bc5b421b6cce2d6b3186f789f967ebb5b..f50e7d7aa07cc893c50e777e2e8950d1a0d67f0d 100644 (file)
@@ -26,10 +26,10 @@ CONSTANT: SSL_CTRL_SET_TMP_DH     3
 CONSTANT: SSL_CTRL_SET_TMP_RSA_CB 4
 CONSTANT: SSL_CTRL_SET_TMP_DH_CB  5
 
-CONSTANT: SSL_CTRL_GET_SESSION_REUSED       6 
-CONSTANT: SSL_CTRL_GET_CLIENT_CERT_REQUEST  7 
-CONSTANT: SSL_CTRL_GET_NUM_RENEGOTIATIONS   8 
-CONSTANT: SSL_CTRL_CLEAR_NUM_RENEGOTIATIONS 9 
+CONSTANT: SSL_CTRL_GET_SESSION_REUSED       6
+CONSTANT: SSL_CTRL_GET_CLIENT_CERT_REQUEST  7
+CONSTANT: SSL_CTRL_GET_NUM_RENEGOTIATIONS   8
+CONSTANT: SSL_CTRL_CLEAR_NUM_RENEGOTIATIONS 9
 CONSTANT: SSL_CTRL_GET_TOTAL_RENEGOTIATIONS 10
 CONSTANT: SSL_CTRL_GET_FLAGS                11
 CONSTANT: SSL_CTRL_EXTRA_CHAIN_CERT         12
@@ -101,6 +101,7 @@ C-TYPE: X509_NAME
 C-TYPE: X509
 
 FUNCTION: int X509_NAME_get_text_by_NID ( X509_NAME* name, int nid, void* buf, int len ) ;
+FUNCTION: X509_NAME* X509_get_issuer_name ( X509* a ) ;
 FUNCTION: X509_NAME* X509_get_subject_name ( X509* a ) ;
 
 ! ===============================================