summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/openssl.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/openssl.c b/src/openssl.c
index 82f3298..0a444c8 100644
--- a/src/openssl.c
+++ b/src/openssl.c
@@ -1598,6 +1598,17 @@ static int bn_new(lua_State *L) {
1598} /* bn_new() */ 1598} /* bn_new() */
1599 1599
1600 1600
1601static int bn_fromBinary(lua_State *L) {
1602 size_t len;
1603 const char *s = luaL_checklstring(L, 1, &len);
1604 BIGNUM *bn = bn_push(L);
1605 if (!BN_bin2bn((const unsigned char*)s, len, bn)) {
1606 auxL_error(L, auxL_EOPENSSL, "bignum");
1607 }
1608 return 1;
1609} /* bn_fromBinary() */
1610
1611
1601static int bn_interpose(lua_State *L) { 1612static int bn_interpose(lua_State *L) {
1602 return interpose(L, BIGNUM_CLASS); 1613 return interpose(L, BIGNUM_CLASS);
1603} /* bn_interpose() */ 1614} /* bn_interpose() */
@@ -2119,6 +2130,7 @@ static const luaL_Reg bn_metatable[] = {
2119static const luaL_Reg bn_globals[] = { 2130static const luaL_Reg bn_globals[] = {
2120 { "new", &bn_new }, 2131 { "new", &bn_new },
2121 { "interpose", &bn_interpose }, 2132 { "interpose", &bn_interpose },
2133 { "fromBinary", &bn_fromBinary },
2122 { "generatePrime", &bn_generatePrime }, 2134 { "generatePrime", &bn_generatePrime },
2123 { NULL, NULL }, 2135 { NULL, NULL },
2124}; 2136};