11#include < napi.h>
22#include < stdio.h>
33#include < cstring>
4- #include " wolfssl/options .h"
5- #include " wolfssl/ssl.h "
4+ #include " ./h/evp .h"
5+ #include < wolfssl/options.h >
66#include < wolfssl/wolfcrypt/settings.h>
77#include < wolfssl/wolfcrypt/aes.h>
8- #include < wolfssl/openssl/evp.h>
98
109using namespace Napi ;
1110
@@ -16,62 +15,6 @@ typedef struct WrappedKey
1615 uint8_t iv[16 ];
1716} WrappedKey;
1817
19- Napi::Number sizeof_EVP_CIPHER_CTX (const Napi::CallbackInfo& info)
20- {
21- Napi::Env env = info.Env ();
22-
23- return Napi::Number::New ( env, sizeof ( EVP_CIPHER_CTX ) );
24- }
25-
26- Napi::Number bind_EVP_CipherInit (const Napi::CallbackInfo& info)
27- {
28- Napi::Env env = info.Env ();
29- int ret;
30- EVP_CIPHER_CTX* evp = (EVP_CIPHER_CTX*)( info[0 ].As <Napi::Uint8Array>().Data () );
31- std::string type = info[1 ].As <Napi::String>().Utf8Value ();
32- uint8_t * key = info[2 ].As <Napi::Uint8Array>().Data ();
33- uint8_t * iv = info[3 ].As <Napi::Uint8Array>().Data ();
34- int enc = info[4 ].As <Napi::Number>().Int32Value ();
35-
36- ret = EVP_CipherInit ( evp, type.c_str (), key, iv, enc );
37-
38- return Napi::Number::New ( env, ret );
39- }
40-
41- Napi::Number bind_EVP_CipherUpdate (const Napi::CallbackInfo& info)
42- {
43- Napi::Env env = info.Env ();
44- int ret;
45- EVP_CIPHER_CTX* evp = (EVP_CIPHER_CTX*)( info[0 ].As <Napi::Uint8Array>().Data () );
46- uint8_t * out_buf = info[1 ].As <Napi::Uint8Array>().Data ();
47- int out_len;
48- uint8_t * in_buf = info[2 ].As <Napi::Uint8Array>().Data ();
49- int in_len = info[3 ].As <Napi::Number>().Int32Value ();
50-
51- ret = EVP_CipherUpdate ( evp, out_buf, &out_len, in_buf, in_len );
52-
53- if ( ret != WOLFSSL_SUCCESS )
54- out_len = -1 ;
55-
56- return Napi::Number::New ( env, out_len );
57- }
58-
59- Napi::Number bind_EVP_CipherFinal (const Napi::CallbackInfo& info)
60- {
61- Napi::Env env = info.Env ();
62- int ret;
63- EVP_CIPHER_CTX* evp = (EVP_CIPHER_CTX*)( info[0 ].As <Napi::Uint8Array>().Data () );
64- uint8_t * out_buf = info[1 ].As <Napi::Uint8Array>().Data ();
65- int out_len;
66-
67- ret = EVP_CipherFinal ( evp, out_buf, &out_len );
68-
69- if ( ret != WOLFSSL_SUCCESS )
70- out_len = -1 ;
71-
72- return Napi::Number::New ( env, out_len );
73- }
74-
7518Napi::Number MakeAes (const Napi::CallbackInfo& info)
7619{
7720 int ret = 0 ;
@@ -135,10 +78,11 @@ Napi::Object Init(Napi::Env env, Napi::Object exports)
13578 exports.Set (Napi::String::New (env, " Encrypt" ), Napi::Function::New (env, Encrypt));
13679 exports.Set (Napi::String::New (env, " Decrypt" ), Napi::Function::New (env, Decrypt));
13780
138- exports.Set (Napi::String::New (env, " sizeof_EVP_CIPHER_CTX " ), Napi::Function::New (env, sizeof_EVP_CIPHER_CTX ));
81+ exports.Set (Napi::String::New (env, " EVP_CIPHER_CTX_new " ), Napi::Function::New (env, bind_EVP_CIPHER_CTX_new ));
13982 exports.Set (Napi::String::New (env, " EVP_CipherInit" ), Napi::Function::New (env, bind_EVP_CipherInit));
14083 exports.Set (Napi::String::New (env, " EVP_CipherUpdate" ), Napi::Function::New (env, bind_EVP_CipherUpdate));
14184 exports.Set (Napi::String::New (env, " EVP_CipherFinal" ), Napi::Function::New (env, bind_EVP_CipherFinal));
85+ exports.Set (Napi::String::New (env, " EVP_CIPHER_CTX_free" ), Napi::Function::New (env, bind_EVP_CIPHER_CTX_free));
14286
14387 return exports;
14488}
0 commit comments