Skip to content

Commit

Permalink
crypto, refactor: refactor import/export api.
Browse files Browse the repository at this point in the history
  • Loading branch information
xicilion committed Apr 13, 2022
1 parent 6633be0 commit 4292fcf
Show file tree
Hide file tree
Showing 25 changed files with 455 additions and 487 deletions.
12 changes: 6 additions & 6 deletions fibjs/include/PKey.h
Expand Up @@ -35,13 +35,13 @@ class PKey : public PKey_base {
virtual result_t get_publicKey(obj_ptr<PKey_base>& retVal);
virtual result_t isPrivate(bool& retVal);
virtual result_t clone(obj_ptr<PKey_base>& retVal);
virtual result_t importKey(Buffer_base* DerKey, exlib::string password);
virtual result_t importKey(exlib::string pemKey, exlib::string password);
virtual result_t importKey(v8::Local<v8::Object> jsonKey);
virtual result_t import(Buffer_base* DerKey, exlib::string password);
virtual result_t import(exlib::string pemKey, exlib::string password);
virtual result_t import(v8::Local<v8::Object> jsonKey);
virtual result_t importFile(exlib::string filename, exlib::string password);
virtual result_t exportPem(exlib::string& retVal);
virtual result_t exportJson(v8::Local<v8::Object>& retVal);
virtual result_t exportDer(obj_ptr<Buffer_base>& retVal);
virtual result_t pem(exlib::string& retVal);
virtual result_t der(obj_ptr<Buffer_base>& retVal);
virtual result_t json(v8::Local<v8::Object>& retVal);
virtual result_t equal(PKey_base* key, bool& retVal);
virtual result_t encrypt(Buffer_base* data, obj_ptr<Buffer_base>& retVal, AsyncEvent* ac);
virtual result_t decrypt(Buffer_base* data, obj_ptr<Buffer_base>& retVal, AsyncEvent* ac);
Expand Down
11 changes: 6 additions & 5 deletions fibjs/include/X509Cert.h
Expand Up @@ -20,12 +20,12 @@ class X509Cert : public X509Cert_base {

public:
// X509Cert_base
virtual result_t load(Buffer_base* derCert);
virtual result_t load(exlib::string txtCert);
virtual result_t loadFile(exlib::string filename);
virtual result_t import(Buffer_base* derCert);
virtual result_t import(exlib::string txtCert);
virtual result_t loadRootCerts();
virtual result_t verify(X509Cert_base* cert, bool& retVal, AsyncEvent* ac);
virtual result_t dump(bool pem, v8::Local<v8::Array>& retVal);
virtual result_t pem(bool all, exlib::string& retVal);
virtual result_t der(obj_ptr<Buffer_base>& retVal);
virtual result_t clear();
virtual result_t get_version(int32_t& retVal);
virtual result_t get_serial(exlib::string& retVal);
Expand All @@ -43,7 +43,8 @@ class X509Cert : public X509Cert_base {
virtual result_t get_next(obj_ptr<X509Cert_base>& retVal);

public:
result_t load(const mbedtls_x509_crt* crt);
result_t import(const mbedtls_x509_crt* crt);
result_t loadFile(exlib::string filename);

public:
struct _name {
Expand Down
11 changes: 7 additions & 4 deletions fibjs/include/X509Crl.h
Expand Up @@ -20,10 +20,10 @@ class X509Crl : public X509Crl_base {

public:
// X509Crl_base
virtual result_t load(Buffer_base* derCrl);
virtual result_t load(exlib::string pemCrl);
virtual result_t loadFile(exlib::string filename);
virtual result_t dump(bool pem, v8::Local<v8::Array>& retVal);
virtual result_t import(Buffer_base* derCrl);
virtual result_t import(exlib::string pemCrl);
virtual result_t pem(bool all, exlib::string& retVal);
virtual result_t der(obj_ptr<Buffer_base>& retVal);
virtual result_t clear();
virtual result_t get_version(int32_t& retVal);
virtual result_t get_issuer(exlib::string& retVal);
Expand All @@ -32,6 +32,9 @@ class X509Crl : public X509Crl_base {
virtual result_t get_nextUpdate(date_t& retVal);
virtual result_t get_next(obj_ptr<X509Crl_base>& retVal);

public:
result_t loadFile(exlib::string filename);

private:
mbedtls_x509_crl* get_crl();

Expand Down
10 changes: 5 additions & 5 deletions fibjs/include/X509Req.h
Expand Up @@ -24,11 +24,10 @@ class X509Req : public X509Req_base {

public:
// X509Req_base
virtual result_t load(Buffer_base* derReq);
virtual result_t load(exlib::string pemReq);
virtual result_t loadFile(exlib::string filename);
virtual result_t exportPem(exlib::string& retVal);
virtual result_t exportDer(obj_ptr<Buffer_base>& retVal);
virtual result_t import(Buffer_base* derReq);
virtual result_t import(exlib::string pemReq);
virtual result_t pem(exlib::string& retVal);
virtual result_t der(obj_ptr<Buffer_base>& retVal);
virtual result_t sign(exlib::string issuer, PKey_base* key, v8::Local<v8::Object> opts, obj_ptr<X509Cert_base>& retVal, AsyncEvent* ac);
virtual result_t get_subject(exlib::string& retVal);
virtual result_t get_publicKey(obj_ptr<PKey_base>& retVal);
Expand All @@ -37,6 +36,7 @@ class X509Req : public X509Req_base {

public:
result_t create(exlib::string subject, PKey_base* key, int32_t hash);
result_t loadFile(exlib::string filename);

private:
void clear();
Expand Down
56 changes: 28 additions & 28 deletions fibjs/include/ifs/PKey.h
Expand Up @@ -34,13 +34,13 @@ class PKey_base : public object_base {
virtual result_t get_publicKey(obj_ptr<PKey_base>& retVal) = 0;
virtual result_t isPrivate(bool& retVal) = 0;
virtual result_t clone(obj_ptr<PKey_base>& retVal) = 0;
virtual result_t importKey(Buffer_base* DerKey, exlib::string password) = 0;
virtual result_t importKey(exlib::string pemKey, exlib::string password) = 0;
virtual result_t importKey(v8::Local<v8::Object> jsonKey) = 0;
virtual result_t import(Buffer_base* DerKey, exlib::string password) = 0;
virtual result_t import(exlib::string pemKey, exlib::string password) = 0;
virtual result_t import(v8::Local<v8::Object> jsonKey) = 0;
virtual result_t importFile(exlib::string filename, exlib::string password) = 0;
virtual result_t exportPem(exlib::string& retVal) = 0;
virtual result_t exportDer(obj_ptr<Buffer_base>& retVal) = 0;
virtual result_t exportJson(v8::Local<v8::Object>& retVal) = 0;
virtual result_t pem(exlib::string& retVal) = 0;
virtual result_t der(obj_ptr<Buffer_base>& retVal) = 0;
virtual result_t json(v8::Local<v8::Object>& retVal) = 0;
virtual result_t equal(PKey_base* key, bool& retVal) = 0;
virtual result_t encrypt(Buffer_base* data, obj_ptr<Buffer_base>& retVal, AsyncEvent* ac) = 0;
virtual result_t decrypt(Buffer_base* data, obj_ptr<Buffer_base>& retVal, AsyncEvent* ac) = 0;
Expand All @@ -64,11 +64,11 @@ class PKey_base : public object_base {
static void s_get_publicKey(v8::Local<v8::Name> property, const v8::PropertyCallbackInfo<v8::Value>& args);
static void s_isPrivate(const v8::FunctionCallbackInfo<v8::Value>& args);
static void s_clone(const v8::FunctionCallbackInfo<v8::Value>& args);
static void s_importKey(const v8::FunctionCallbackInfo<v8::Value>& args);
static void s_import(const v8::FunctionCallbackInfo<v8::Value>& args);
static void s_importFile(const v8::FunctionCallbackInfo<v8::Value>& args);
static void s_exportPem(const v8::FunctionCallbackInfo<v8::Value>& args);
static void s_exportDer(const v8::FunctionCallbackInfo<v8::Value>& args);
static void s_exportJson(const v8::FunctionCallbackInfo<v8::Value>& args);
static void s_pem(const v8::FunctionCallbackInfo<v8::Value>& args);
static void s_der(const v8::FunctionCallbackInfo<v8::Value>& args);
static void s_json(const v8::FunctionCallbackInfo<v8::Value>& args);
static void s_equal(const v8::FunctionCallbackInfo<v8::Value>& args);
static void s_encrypt(const v8::FunctionCallbackInfo<v8::Value>& args);
static void s_decrypt(const v8::FunctionCallbackInfo<v8::Value>& args);
Expand All @@ -95,11 +95,11 @@ inline ClassInfo& PKey_base::class_info()
static ClassData::ClassMethod s_method[] = {
{ "isPrivate", s_isPrivate, false, false },
{ "clone", s_clone, false, false },
{ "importKey", s_importKey, false, false },
{ "import", s_import, false, false },
{ "importFile", s_importFile, false, false },
{ "exportPem", s_exportPem, false, false },
{ "exportDer", s_exportDer, false, false },
{ "exportJson", s_exportJson, false, false },
{ "pem", s_pem, false, false },
{ "der", s_der, false, false },
{ "json", s_json, false, false },
{ "equal", s_equal, false, false },
{ "encrypt", s_encrypt, false, true },
{ "encryptSync", s_encrypt, false, false },
Expand Down Expand Up @@ -279,9 +279,9 @@ inline void PKey_base::s_clone(const v8::FunctionCallbackInfo<v8::Value>& args)
METHOD_RETURN();
}

inline void PKey_base::s_importKey(const v8::FunctionCallbackInfo<v8::Value>& args)
inline void PKey_base::s_import(const v8::FunctionCallbackInfo<v8::Value>& args)
{
METHOD_NAME("PKey.importKey");
METHOD_NAME("PKey.import");
METHOD_INSTANCE(PKey_base);
METHOD_ENTER();

Expand All @@ -290,20 +290,20 @@ inline void PKey_base::s_importKey(const v8::FunctionCallbackInfo<v8::Value>& ar
ARG(obj_ptr<Buffer_base>, 0);
OPT_ARG(exlib::string, 1, "");

hr = pInst->importKey(v0, v1);
hr = pInst->import(v0, v1);

METHOD_OVER(2, 1);

ARG(exlib::string, 0);
OPT_ARG(exlib::string, 1, "");

hr = pInst->importKey(v0, v1);
hr = pInst->import(v0, v1);

METHOD_OVER(1, 1);

ARG(v8::Local<v8::Object>, 0);

hr = pInst->importKey(v0);
hr = pInst->import(v0);

METHOD_VOID();
}
Expand All @@ -324,47 +324,47 @@ inline void PKey_base::s_importFile(const v8::FunctionCallbackInfo<v8::Value>& a
METHOD_VOID();
}

inline void PKey_base::s_exportPem(const v8::FunctionCallbackInfo<v8::Value>& args)
inline void PKey_base::s_pem(const v8::FunctionCallbackInfo<v8::Value>& args)
{
exlib::string vr;

METHOD_NAME("PKey.exportPem");
METHOD_NAME("PKey.pem");
METHOD_INSTANCE(PKey_base);
METHOD_ENTER();

METHOD_OVER(0, 0);

hr = pInst->exportPem(vr);
hr = pInst->pem(vr);

METHOD_RETURN();
}

inline void PKey_base::s_exportDer(const v8::FunctionCallbackInfo<v8::Value>& args)
inline void PKey_base::s_der(const v8::FunctionCallbackInfo<v8::Value>& args)
{
obj_ptr<Buffer_base> vr;

METHOD_NAME("PKey.exportDer");
METHOD_NAME("PKey.der");
METHOD_INSTANCE(PKey_base);
METHOD_ENTER();

METHOD_OVER(0, 0);

hr = pInst->exportDer(vr);
hr = pInst->der(vr);

METHOD_RETURN();
}

inline void PKey_base::s_exportJson(const v8::FunctionCallbackInfo<v8::Value>& args)
inline void PKey_base::s_json(const v8::FunctionCallbackInfo<v8::Value>& args)
{
v8::Local<v8::Object> vr;

METHOD_NAME("PKey.exportJson");
METHOD_NAME("PKey.json");
METHOD_INSTANCE(PKey_base);
METHOD_ENTER();

METHOD_OVER(0, 0);

hr = pInst->exportJson(vr);
hr = pInst->json(vr);

METHOD_RETURN();
}
Expand Down
66 changes: 33 additions & 33 deletions fibjs/include/ifs/X509Cert.h
Expand Up @@ -26,12 +26,12 @@ class X509Cert_base : public object_base {
static result_t _new(obj_ptr<X509Cert_base>& retVal, v8::Local<v8::Object> This = v8::Local<v8::Object>());
static result_t _new(Buffer_base* derCert, obj_ptr<X509Cert_base>& retVal, v8::Local<v8::Object> This = v8::Local<v8::Object>());
static result_t _new(exlib::string txtCert, obj_ptr<X509Cert_base>& retVal, v8::Local<v8::Object> This = v8::Local<v8::Object>());
virtual result_t load(Buffer_base* derCert) = 0;
virtual result_t load(exlib::string txtCert) = 0;
virtual result_t loadFile(exlib::string filename) = 0;
virtual result_t import(Buffer_base* derCert) = 0;
virtual result_t import(exlib::string txtCert) = 0;
virtual result_t loadRootCerts() = 0;
virtual result_t verify(X509Cert_base* cert, bool& retVal, AsyncEvent* ac) = 0;
virtual result_t dump(bool pem, v8::Local<v8::Array>& retVal) = 0;
virtual result_t pem(bool all, exlib::string& retVal) = 0;
virtual result_t der(obj_ptr<Buffer_base>& retVal) = 0;
virtual result_t clear() = 0;
virtual result_t get_version(int32_t& retVal) = 0;
virtual result_t get_serial(exlib::string& retVal) = 0;
Expand All @@ -54,11 +54,11 @@ class X509Cert_base : public object_base {

public:
static void s__new(const v8::FunctionCallbackInfo<v8::Value>& args);
static void s_load(const v8::FunctionCallbackInfo<v8::Value>& args);
static void s_loadFile(const v8::FunctionCallbackInfo<v8::Value>& args);
static void s_import(const v8::FunctionCallbackInfo<v8::Value>& args);
static void s_loadRootCerts(const v8::FunctionCallbackInfo<v8::Value>& args);
static void s_verify(const v8::FunctionCallbackInfo<v8::Value>& args);
static void s_dump(const v8::FunctionCallbackInfo<v8::Value>& args);
static void s_pem(const v8::FunctionCallbackInfo<v8::Value>& args);
static void s_der(const v8::FunctionCallbackInfo<v8::Value>& args);
static void s_clear(const v8::FunctionCallbackInfo<v8::Value>& args);
static void s_get_version(v8::Local<v8::Name> property, const v8::PropertyCallbackInfo<v8::Value>& args);
static void s_get_serial(v8::Local<v8::Name> property, const v8::PropertyCallbackInfo<v8::Value>& args);
Expand Down Expand Up @@ -87,12 +87,12 @@ namespace fibjs {
inline ClassInfo& X509Cert_base::class_info()
{
static ClassData::ClassMethod s_method[] = {
{ "load", s_load, false, false },
{ "loadFile", s_loadFile, false, false },
{ "import", s_import, false, false },
{ "loadRootCerts", s_loadRootCerts, false, false },
{ "verify", s_verify, false, true },
{ "verifySync", s_verify, false, false },
{ "dump", s_dump, false, false },
{ "pem", s_pem, false, false },
{ "der", s_der, false, false },
{ "clear", s_clear, false, false }
};

Expand Down Expand Up @@ -156,38 +156,23 @@ void X509Cert_base::__new(const T& args)
CONSTRUCT_RETURN();
}

inline void X509Cert_base::s_load(const v8::FunctionCallbackInfo<v8::Value>& args)
inline void X509Cert_base::s_import(const v8::FunctionCallbackInfo<v8::Value>& args)
{
METHOD_NAME("X509Cert.load");
METHOD_NAME("X509Cert.import");
METHOD_INSTANCE(X509Cert_base);
METHOD_ENTER();

METHOD_OVER(1, 1);

ARG(obj_ptr<Buffer_base>, 0);

hr = pInst->load(v0);
hr = pInst->import(v0);

METHOD_OVER(1, 1);

ARG(exlib::string, 0);

hr = pInst->load(v0);

METHOD_VOID();
}

inline void X509Cert_base::s_loadFile(const v8::FunctionCallbackInfo<v8::Value>& args)
{
METHOD_NAME("X509Cert.loadFile");
METHOD_INSTANCE(X509Cert_base);
METHOD_ENTER();

METHOD_OVER(1, 1);

ARG(exlib::string, 0);

hr = pInst->loadFile(v0);
hr = pInst->import(v0);

METHOD_VOID();
}
Expand Down Expand Up @@ -225,19 +210,34 @@ inline void X509Cert_base::s_verify(const v8::FunctionCallbackInfo<v8::Value>& a
METHOD_RETURN();
}

inline void X509Cert_base::s_dump(const v8::FunctionCallbackInfo<v8::Value>& args)
inline void X509Cert_base::s_pem(const v8::FunctionCallbackInfo<v8::Value>& args)
{
v8::Local<v8::Array> vr;
exlib::string vr;

METHOD_NAME("X509Cert.dump");
METHOD_NAME("X509Cert.pem");
METHOD_INSTANCE(X509Cert_base);
METHOD_ENTER();

METHOD_OVER(1, 0);

OPT_ARG(bool, 0, true);

hr = pInst->dump(v0, vr);
hr = pInst->pem(v0, vr);

METHOD_RETURN();
}

inline void X509Cert_base::s_der(const v8::FunctionCallbackInfo<v8::Value>& args)
{
obj_ptr<Buffer_base> vr;

METHOD_NAME("X509Cert.der");
METHOD_INSTANCE(X509Cert_base);
METHOD_ENTER();

METHOD_OVER(0, 0);

hr = pInst->der(vr);

METHOD_RETURN();
}
Expand Down

0 comments on commit 4292fcf

Please sign in to comment.