@@ -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
@@ -460,14 +446,7 @@ class KeyObject : public BaseObject {
460
446
v8::MaybeLocal<v8::Value> ExportPrivateKey (
461
447
const PrivateKeyEncodingConfig& config) const ;
462
448
463
- KeyObject (Environment* env,
464
- v8::Local<v8::Object> wrap,
465
- KeyType key_type)
466
- : BaseObject(env, wrap),
467
- key_type_ (key_type),
468
- symmetric_key_(nullptr , nullptr ) {
469
- MakeWeak ();
470
- }
449
+ KeyObject (Environment* env, v8::Local<v8::Object> wrap, KeyType key_type);
471
450
472
451
private:
473
452
const KeyType key_type_;
@@ -541,17 +520,7 @@ class CipherBase : public BaseObject {
541
520
static void SetAuthTag (const v8::FunctionCallbackInfo<v8::Value>& args);
542
521
static void SetAAD (const v8::FunctionCallbackInfo<v8::Value>& args);
543
522
544
- CipherBase (Environment* env,
545
- v8::Local<v8::Object> wrap,
546
- CipherKind kind)
547
- : BaseObject(env, wrap),
548
- ctx_ (nullptr ),
549
- kind_(kind),
550
- auth_tag_state_(kAuthTagUnknown ),
551
- auth_tag_len_(kNoAuthTagLength ),
552
- pending_auth_failed_(false ) {
553
- MakeWeak ();
554
- }
523
+ CipherBase (Environment* env, v8::Local<v8::Object> wrap, CipherKind kind);
555
524
556
525
private:
557
526
DeleteFnPtr<EVP_CIPHER_CTX, EVP_CIPHER_CTX_free> ctx_;
@@ -581,18 +550,16 @@ class Hmac : public BaseObject {
581
550
static void HmacUpdate (const v8::FunctionCallbackInfo<v8::Value>& args);
582
551
static void HmacDigest (const v8::FunctionCallbackInfo<v8::Value>& args);
583
552
584
- Hmac (Environment* env, v8::Local<v8::Object> wrap)
585
- : BaseObject(env, wrap),
586
- ctx_ (nullptr ) {
587
- MakeWeak ();
588
- }
553
+ Hmac (Environment* env, v8::Local<v8::Object> wrap);
589
554
590
555
private:
591
556
DeleteFnPtr<HMAC_CTX, HMAC_CTX_free> ctx_;
592
557
};
593
558
594
- class Hash : public BaseObject {
559
+ class Hash final : public BaseObject {
595
560
public:
561
+ ~Hash () override ;
562
+
596
563
static void Initialize (Environment* env, v8::Local<v8::Object> target);
597
564
598
565
// TODO(joyeecheung): track the memory used by OpenSSL types
@@ -608,18 +575,7 @@ class Hash : public BaseObject {
608
575
static void HashUpdate (const v8::FunctionCallbackInfo<v8::Value>& args);
609
576
static void HashDigest (const v8::FunctionCallbackInfo<v8::Value>& args);
610
577
611
- Hash (Environment* env, v8::Local<v8::Object> wrap)
612
- : BaseObject(env, wrap),
613
- mdctx_ (nullptr ),
614
- has_md_(false ),
615
- md_value_(nullptr ) {
616
- MakeWeak ();
617
- }
618
-
619
- ~Hash () override {
620
- if (md_value_ != nullptr )
621
- OPENSSL_clear_free (md_value_, md_len_);
622
- }
578
+ Hash (Environment* env, v8::Local<v8::Object> wrap);
623
579
624
580
private:
625
581
EVPMDPointer mdctx_;
@@ -641,9 +597,7 @@ class SignBase : public BaseObject {
641
597
kSignMalformedSignature
642
598
} Error;
643
599
644
- SignBase (Environment* env, v8::Local<v8::Object> wrap)
645
- : BaseObject(env, wrap) {
646
- }
600
+ SignBase (Environment* env, v8::Local<v8::Object> wrap);
647
601
648
602
Error Init (const char * sign_type);
649
603
Error Update (const char * data, int len);
@@ -689,9 +643,7 @@ class Sign : public SignBase {
689
643
static void SignUpdate (const v8::FunctionCallbackInfo<v8::Value>& args);
690
644
static void SignFinal (const v8::FunctionCallbackInfo<v8::Value>& args);
691
645
692
- Sign (Environment* env, v8::Local<v8::Object> wrap) : SignBase(env, wrap) {
693
- MakeWeak ();
694
- }
646
+ Sign (Environment* env, v8::Local<v8::Object> wrap);
695
647
};
696
648
697
649
class Verify : public SignBase {
@@ -710,9 +662,7 @@ class Verify : public SignBase {
710
662
static void VerifyUpdate (const v8::FunctionCallbackInfo<v8::Value>& args);
711
663
static void VerifyFinal (const v8::FunctionCallbackInfo<v8::Value>& args);
712
664
713
- Verify (Environment* env, v8::Local<v8::Object> wrap) : SignBase(env, wrap) {
714
- MakeWeak ();
715
- }
665
+ Verify (Environment* env, v8::Local<v8::Object> wrap);
716
666
};
717
667
718
668
class PublicKeyCipher {
@@ -769,11 +719,7 @@ class DiffieHellman : public BaseObject {
769
719
static void VerifyErrorGetter (
770
720
const v8::FunctionCallbackInfo<v8::Value>& args);
771
721
772
- DiffieHellman (Environment* env, v8::Local<v8::Object> wrap)
773
- : BaseObject(env, wrap),
774
- verifyError_ (0 ) {
775
- MakeWeak ();
776
- }
722
+ DiffieHellman (Environment* env, v8::Local<v8::Object> wrap);
777
723
778
724
// TODO(joyeecheung): track the memory used by OpenSSL types
779
725
SET_NO_MEMORY_INFO ()
@@ -792,11 +738,9 @@ class DiffieHellman : public BaseObject {
792
738
DHPointer dh_;
793
739
};
794
740
795
- class ECDH : public BaseObject {
741
+ class ECDH final : public BaseObject {
796
742
public:
797
- ~ECDH () override {
798
- group_ = nullptr ;
799
- }
743
+ ~ECDH () override ;
800
744
801
745
static void Initialize (Environment* env, v8::Local<v8::Object> target);
802
746
static ECPointPointer BufferToPoint (Environment* env,
@@ -809,13 +753,7 @@ class ECDH : public BaseObject {
809
753
SET_SELF_SIZE (ECDH)
810
754
811
755
protected:
812
- ECDH (Environment* env, v8::Local<v8::Object> wrap, ECKeyPointer&& key)
813
- : BaseObject(env, wrap),
814
- key_ (std::move(key)),
815
- group_(EC_KEY_get0_group(key_.get())) {
816
- MakeWeak ();
817
- CHECK_NOT_NULL (group_);
818
- }
756
+ ECDH (Environment* env, v8::Local<v8::Object> wrap, ECKeyPointer&& key);
819
757
820
758
static void New (const v8::FunctionCallbackInfo<v8::Value>& args);
821
759
static void GenerateKeys (const v8::FunctionCallbackInfo<v8::Value>& args);
0 commit comments