aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLibravatarLibravatar daurnimator <quae@daurnimator.com> 2015-12-07 01:55:09 +1100
committerLibravatarLibravatar daurnimator <quae@daurnimator.com> 2015-12-07 02:24:21 +1100
commitc85830f814aeebd98a471f2a0fc6e5848714ecbf (patch)
tree32aa08cd8ec41221bb8e23e39db0eda2fb833e26 /src
parent60fc10973eb348cb3d99d27f083437ddeab03f14 (diff)
downloadluaossl-c85830f814aeebd98a471f2a0fc6e5848714ecbf.tar.gz
luaossl-c85830f814aeebd98a471f2a0fc6e5848714ecbf.tar.bz2
luaossl-c85830f814aeebd98a471f2a0fc6e5848714ecbf.zip
Add :tobin method to bignums
Diffstat (limited to 'src')
-rw-r--r--src/openssl.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/openssl.c b/src/openssl.c
index 9dbcda7..8fadb02 100644
--- a/src/openssl.c
+++ b/src/openssl.c
@@ -1753,6 +1753,16 @@ static BN_CTX *getctx(lua_State *L) {
} /* getctx() */
+static int bn_tobin(lua_State *L) {
+ BIGNUM *bn = checksimple(L, 1, BIGNUM_CLASS);
+ size_t len = BN_num_bytes(bn);
+ unsigned char* dst = lua_newuserdata(L, len);
+ BN_bn2bin(bn, dst);
+ lua_pushlstring(L, dst, len);
+ return 1;
+} /* bn_tobin() */
+
+
static int bn__add(lua_State *L) {
BIGNUM *r, *a, *b;
@@ -1892,6 +1902,7 @@ static int bn__tostring(lua_State *L) {
static const luaL_Reg bn_methods[] = {
+ { "tobin", &bn_tobin },
{ NULL, NULL },
};