diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/openssl.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/openssl.c b/src/openssl.c index 0760c35..0354666 100644 --- a/src/openssl.c +++ b/src/openssl.c | |||
| @@ -3212,6 +3212,7 @@ static int pk_new(lua_State *L) { | |||
| 3212 | int type = EVP_PKEY_RSA; | 3212 | int type = EVP_PKEY_RSA; |
| 3213 | unsigned bits = 1024; | 3213 | unsigned bits = 1024; |
| 3214 | unsigned exp = 65537; | 3214 | unsigned exp = 65537; |
| 3215 | int generator = 2; | ||
| 3215 | int curve = NID_X9_62_prime192v1; | 3216 | int curve = NID_X9_62_prime192v1; |
| 3216 | const char *id; | 3217 | const char *id; |
| 3217 | const char *dhparam = NULL; | 3218 | const char *dhparam = NULL; |
| @@ -3264,9 +3265,10 @@ static int pk_new(lua_State *L) { | |||
| 3264 | bits = (unsigned)n; | 3265 | bits = (unsigned)n; |
| 3265 | } | 3266 | } |
| 3266 | 3267 | ||
| 3267 | if (loadfield(L, 1, "exp", LUA_TNUMBER, &n)) { | 3268 | /* compat: DH used to use the 'exp' field for the generator */ |
| 3268 | luaL_argcheck(L, n > 0 && n < UINT_MAX, 1, lua_pushfstring(L, "%f: `exp' invalid", n)); | 3269 | if (loadfield(L, 1, "generator", LUA_TNUMBER, &n) || loadfield(L, 1, "exp", LUA_TNUMBER, &n)) { |
| 3269 | exp = (unsigned)n; | 3270 | luaL_argcheck(L, n > 0 && n <= INT_MAX, 1, lua_pushfstring(L, "%f: `exp' invalid", n)); |
| 3271 | generator = (int)n; | ||
| 3270 | } | 3272 | } |
| 3271 | break; | 3273 | break; |
| 3272 | case EVP_PKEY_EC: | 3274 | case EVP_PKEY_EC: |
| @@ -3327,7 +3329,7 @@ creat: | |||
| 3327 | BIO_free(bio); | 3329 | BIO_free(bio); |
| 3328 | if (!dh) | 3330 | if (!dh) |
| 3329 | return auxL_error(L, auxL_EOPENSSL, "pkey.new"); | 3331 | return auxL_error(L, auxL_EOPENSSL, "pkey.new"); |
| 3330 | } else if (!(dh = DH_generate_parameters(bits, exp, 0, 0))) | 3332 | } else if (!(dh = DH_generate_parameters(bits, generator, 0, 0))) |
| 3331 | return auxL_error(L, auxL_EOPENSSL, "pkey.new"); | 3333 | return auxL_error(L, auxL_EOPENSSL, "pkey.new"); |
| 3332 | 3334 | ||
| 3333 | 3335 | ||
