nixio: Add support for DER keyfiles
authorSteven Barth <steven@midlink.org>
Sat, 6 Jun 2009 13:03:31 +0000 (13:03 +0000)
committerSteven Barth <steven@midlink.org>
Sat, 6 Jun 2009 13:03:31 +0000 (13:03 +0000)
libs/nixio/src/axtls-compat.h
libs/nixio/src/tls-context.c

index 77533ef..aee24f5 100644 (file)
@@ -44,6 +44,7 @@
 #define SSL_OP_NO_SSLv3                                        0x02000000L
 #define SSL_OP_NO_SSLv2                                        0x01000000L
 #define SSL_FILETYPE_PEM                               1
+#define SSL_FILETYPE_ASN1                              2
 #define SSL_VERIFY_NONE                                        0x00
 #define SSL_VERIFY_PEER                                        0x01
 #define SSL_VERIFY_FAIL_IF_NO_PEER_CERT 0x02
index fdbe224..e55de05 100644 (file)
@@ -119,7 +119,17 @@ static int nixio_tls_ctx_set_cert(lua_State *L) {
 static int nixio_tls_ctx_set_key(lua_State *L) {
        SSL_CTX *ctx = nixio__checktlsctx(L);
        const char *cert = luaL_checkstring(L, 2);
-       const int ktype = SSL_FILETYPE_PEM;
+       const char *type = luaL_optstring(L, 3, "pem");
+       int ktype;
+
+       if (!strcmp(type, "pem")) {
+               ktype = SSL_FILETYPE_PEM;
+       } else if (!strcmp(type, "asn1")) {
+               ktype = SSL_FILETYPE_ASN1;
+       } else {
+               return luaL_argerror(L, 3, "supported values: pem, asn1");
+       }
+
        return nixio__tls_pstatus(L, SSL_CTX_use_PrivateKey_file(ctx, cert, ktype));
 }