@@ -84,11 +84,9 @@ extern void UseExtraCaCerts(const std::string& file);
84
84
85
85
void InitCryptoOnce ();
86
86
87
- class SecureContext : public BaseObject {
87
+ class SecureContext final : public BaseObject {
88
88
public:
89
- ~SecureContext () override {
90
- Reset ();
91
- }
89
+ ~SecureContext () override ;
92
90
93
91
static void Initialize (Environment* env, v8::Local<v8::Object> target);
94
92
@@ -177,20 +175,8 @@ class SecureContext : public BaseObject {
177
175
HMAC_CTX* hctx,
178
176
int enc);
179
177
180
- SecureContext (Environment* env, v8::Local<v8::Object> wrap)
181
- : BaseObject(env, wrap) {
182
- MakeWeak ();
183
- env->isolate ()->AdjustAmountOfExternalAllocatedMemory (kExternalSize );
184
- }
185
-
186
- inline void Reset () {
187
- if (ctx_ != nullptr ) {
188
- env ()->isolate ()->AdjustAmountOfExternalAllocatedMemory (-kExternalSize );
189
- }
190
- ctx_.reset ();
191
- cert_.reset ();
192
- issuer_.reset ();
193
- }
178
+ SecureContext (Environment* env, v8::Local<v8::Object> wrap);
179
+ void Reset ();
194
180
};
195
181
196
182
// SSLWrap implicitly depends on the inheriting class' handle having an
@@ -461,14 +447,7 @@ class KeyObject : public BaseObject {
461
447
v8::MaybeLocal<v8::Value> ExportPrivateKey (
462
448
const PrivateKeyEncodingConfig& config) const ;
463
449
464
- KeyObject (Environment* env,
465
- v8::Local<v8::Object> wrap,
466
- KeyType key_type)
467
- : BaseObject(env, wrap),
468
- key_type_ (key_type),
469
- symmetric_key_(nullptr , nullptr ) {
470
- MakeWeak ();
471
- }
450
+ KeyObject (Environment* env, v8::Local<v8::Object> wrap, KeyType key_type);
472
451
473
452
private:
474
453
const KeyType key_type_;
@@ -542,17 +521,7 @@ class CipherBase : public BaseObject {
542
521
static void SetAuthTag (const v8::FunctionCallbackInfo<v8::Value>& args);
543
522
static void SetAAD (const v8::FunctionCallbackInfo<v8::Value>& args);
544
523
545
- CipherBase (Environment* env,
546
- v8::Local<v8::Object> wrap,
547
- CipherKind kind)
548
- : BaseObject(env, wrap),
549
- ctx_ (nullptr ),
550
- kind_(kind),
551
- auth_tag_state_(kAuthTagUnknown ),
552
- auth_tag_len_(kNoAuthTagLength ),
553
- pending_auth_failed_(false ) {
554
- MakeWeak ();
555
- }
524
+ CipherBase (Environment* env, v8::Local<v8::Object> wrap, CipherKind kind);
556
525
557
526
private:
558
527
DeleteFnPtr<EVP_CIPHER_CTX, EVP_CIPHER_CTX_free> ctx_;
@@ -582,18 +551,16 @@ class Hmac : public BaseObject {
582
551
static void HmacUpdate (const v8::FunctionCallbackInfo<v8::Value>& args);
583
552
static void HmacDigest (const v8::FunctionCallbackInfo<v8::Value>& args);
584
553
585
- Hmac (Environment* env, v8::Local<v8::Object> wrap)
586
- : BaseObject(env, wrap),
587
- ctx_ (nullptr ) {
588
- MakeWeak ();
589
- }
554
+ Hmac (Environment* env, v8::Local<v8::Object> wrap);
590
555
591
556
private:
592
557
DeleteFnPtr<HMAC_CTX, HMAC_CTX_free> ctx_;
593
558
};
594
559
595
- class Hash : public BaseObject {
560
+ class Hash final : public BaseObject {
596
561
public:
562
+ ~Hash () override ;
563
+
597
564
static void Initialize (Environment* env, v8::Local<v8::Object> target);
598
565
599
566
// TODO(joyeecheung): track the memory used by OpenSSL types
@@ -609,18 +576,7 @@ class Hash : public BaseObject {
609
576
static void HashUpdate (const v8::FunctionCallbackInfo<v8::Value>& args);
610
577
static void HashDigest (const v8::FunctionCallbackInfo<v8::Value>& args);
611
578
612
- Hash (Environment* env, v8::Local<v8::Object> wrap)
613
- : BaseObject(env, wrap),
614
- mdctx_ (nullptr ),
615
- has_md_(false ),
616
- md_value_(nullptr ) {
617
- MakeWeak ();
618
- }
619
-
620
- ~Hash () override {
621
- if (md_value_ != nullptr )
622
- OPENSSL_clear_free (md_value_, md_len_);
623
- }
579
+ Hash (Environment* env, v8::Local<v8::Object> wrap);
624
580
625
581
private:
626
582
EVPMDPointer mdctx_;
@@ -642,9 +598,7 @@ class SignBase : public BaseObject {
642
598
kSignMalformedSignature
643
599
} Error;
644
600
645
- SignBase (Environment* env, v8::Local<v8::Object> wrap)
646
- : BaseObject(env, wrap) {
647
- }
601
+ SignBase (Environment* env, v8::Local<v8::Object> wrap);
648
602
649
603
Error Init (const char * sign_type);
650
604
Error Update (const char * data, int len);
@@ -690,9 +644,7 @@ class Sign : public SignBase {
690
644
static void SignUpdate (const v8::FunctionCallbackInfo<v8::Value>& args);
691
645
static void SignFinal (const v8::FunctionCallbackInfo<v8::Value>& args);
692
646
693
- Sign (Environment* env, v8::Local<v8::Object> wrap) : SignBase(env, wrap) {
694
- MakeWeak ();
695
- }
647
+ Sign (Environment* env, v8::Local<v8::Object> wrap);
696
648
};
697
649
698
650
class Verify : public SignBase {
@@ -712,9 +664,7 @@ class Verify : public SignBase {
712
664
static void VerifyUpdate (const v8::FunctionCallbackInfo<v8::Value>& args);
713
665
static void VerifyFinal (const v8::FunctionCallbackInfo<v8::Value>& args);
714
666
715
- Verify (Environment* env, v8::Local<v8::Object> wrap) : SignBase(env, wrap) {
716
- MakeWeak ();
717
- }
667
+ Verify (Environment* env, v8::Local<v8::Object> wrap);
718
668
};
719
669
720
670
class PublicKeyCipher {
@@ -771,11 +721,7 @@ class DiffieHellman : public BaseObject {
771
721
static void VerifyErrorGetter (
772
722
const v8::FunctionCallbackInfo<v8::Value>& args);
773
723
774
- DiffieHellman (Environment* env, v8::Local<v8::Object> wrap)
775
- : BaseObject(env, wrap),
776
- verifyError_ (0 ) {
777
- MakeWeak ();
778
- }
724
+ DiffieHellman (Environment* env, v8::Local<v8::Object> wrap);
779
725
780
726
// TODO(joyeecheung): track the memory used by OpenSSL types
781
727
SET_NO_MEMORY_INFO ()
@@ -794,11 +740,9 @@ class DiffieHellman : public BaseObject {
794
740
DHPointer dh_;
795
741
};
796
742
797
- class ECDH : public BaseObject {
743
+ class ECDH final : public BaseObject {
798
744
public:
799
- ~ECDH () override {
800
- group_ = nullptr ;
801
- }
745
+ ~ECDH () override ;
802
746
803
747
static void Initialize (Environment* env, v8::Local<v8::Object> target);
804
748
static ECPointPointer BufferToPoint (Environment* env,
@@ -811,13 +755,7 @@ class ECDH : public BaseObject {
811
755
SET_SELF_SIZE (ECDH)
812
756
813
757
protected:
814
- ECDH (Environment* env, v8::Local<v8::Object> wrap, ECKeyPointer&& key)
815
- : BaseObject(env, wrap),
816
- key_ (std::move(key)),
817
- group_(EC_KEY_get0_group(key_.get())) {
818
- MakeWeak ();
819
- CHECK_NOT_NULL (group_);
820
- }
758
+ ECDH (Environment* env, v8::Local<v8::Object> wrap, ECKeyPointer&& key);
821
759
822
760
static void New (const v8::FunctionCallbackInfo<v8::Value>& args);
823
761
static void GenerateKeys (const v8::FunctionCallbackInfo<v8::Value>& args);
0 commit comments