aboutsummaryrefslogtreecommitdiffstats
path: root/main/lua-ossl/0004-get-extension-data-in-DER-format.patch
blob: 0a2df91b6fff45313223128b1464120f1701febe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
From 38d2781a958901109eef34abc5826d2d25fb42b5 Mon Sep 17 00:00:00 2001
From: Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>
Date: Thu, 14 May 2015 14:50:22 +0300
Subject: [PATCH 4/5] get extension data in DER format

---
 src/openssl.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/src/openssl.c b/src/openssl.c
index 8564ce1..89be6b5 100644
--- a/src/openssl.c
+++ b/src/openssl.c
@@ -2889,6 +2889,13 @@ static int xe_interpose(lua_State *L) {
 } /* xe_interpose() */
 
 
+static int xe_getData(lua_State *L) {
+	ASN1_STRING *data = X509_EXTENSION_get_data(checksimple(L, 1, X509_EXT_CLASS));
+	lua_pushlstring(L, (char *) ASN1_STRING_data(data), ASN1_STRING_length(data));
+	return 1;
+} /* xe_getData() */
+
+
 static int xe__gc(lua_State *L) {
 	X509_EXTENSION **ud = luaL_checkudata(L, 1, X509_EXT_CLASS);
 
@@ -2902,7 +2909,8 @@ static int xe__gc(lua_State *L) {
 
 
 static const luaL_Reg xe_methods[] = {
-	{ NULL,  NULL },
+	{ "getData",  &xe_getData },
+	{ NULL,       NULL },
 };
 
 static const luaL_Reg xe_metatable[] = {
-- 
2.1.0