Lines Matching refs:env

6 #include "env-inl.h"
64 void ECDH::Initialize(Environment* env, Local<Object> target) {
65 Isolate* isolate = env->isolate();
66 Local<Context> context = env->context();
69 t->Inherit(BaseObject::GetConstructorTemplate(env));
85 ECDHBitsJob::Initialize(env, target);
86 ECKeyPairGenJob::Initialize(env, target);
87 ECKeyExportJob::Initialize(env, target);
110 Environment* env = Environment::GetCurrent(args);
116 std::transform(curves.begin(), curves.end(), arr.begin(), [env](auto& curve) {
117 return OneByteString(env->isolate(), OBJ_nid2sn(curve.nid));
119 args.GetReturnValue().Set(Array::New(env->isolate(), arr.data(), arr.size()));
122 ECDH::ECDH(Environment* env, Local<Object> wrap, ECKeyPointer&& key)
123 : BaseObject(env, wrap),
137 Environment* env = Environment::GetCurrent(args);
143 node::Utf8Value curve(env->isolate(), args[0]);
147 return THROW_ERR_CRYPTO_INVALID_CURVE(env);
151 return THROW_ERR_CRYPTO_OPERATION_FAILED(env,
154 new ECDH(env, args.This(), std::move(key));
158 Environment* env = Environment::GetCurrent(args);
164 return THROW_ERR_CRYPTO_OPERATION_FAILED(env, "Failed to generate key");
167 ECPointPointer ECDH::BufferToPoint(Environment* env,
174 THROW_ERR_CRYPTO_OPERATION_FAILED(env,
181 THROW_ERR_OUT_OF_RANGE(env, "buffer is too big");
197 Environment* env = Environment::GetCurrent(args);
207 return THROW_ERR_CRYPTO_INVALID_KEYPAIR(env);
210 ECDH::BufferToPoint(env,
215 FIXED_ONE_BYTE_STRING(env->isolate(),
222 NoArrayBufferZeroFillScope no_zero_fill_scope(env->isolate_data());
226 bs = ArrayBuffer::NewBackingStore(env->isolate(), out_len);
231 return THROW_ERR_CRYPTO_OPERATION_FAILED(env, "Failed to compute ECDH key");
233 Local<ArrayBuffer> ab = ArrayBuffer::New(env->isolate(), std::move(bs));
235 if (!Buffer::New(env, ab, 0, ab->ByteLength()).ToLocal(&buffer)) return;
240 Environment* env = Environment::GetCurrent(args);
251 return THROW_ERR_CRYPTO_OPERATION_FAILED(env,
260 if (!ECPointToBuffer(env, group, pub, form, &error).ToLocal(&buf))
261 return THROW_ERR_CRYPTO_OPERATION_FAILED(env, error);
266 Environment* env = Environment::GetCurrent(args);
273 return THROW_ERR_CRYPTO_OPERATION_FAILED(env,
278 NoArrayBufferZeroFillScope no_zero_fill_scope(env->isolate_data());
279 bs = ArrayBuffer::NewBackingStore(env->isolate(), BN_num_bytes(b));
285 Local<ArrayBuffer> ab = ArrayBuffer::New(env->isolate(), std::move(bs));
287 if (!Buffer::New(env, ab, 0, ab->ByteLength()).ToLocal(&buffer)) return;
292 Environment* env = Environment::GetCurrent(args);
299 return THROW_ERR_OUT_OF_RANGE(env, "key is too big");
304 return THROW_ERR_CRYPTO_OPERATION_FAILED(env,
309 return THROW_ERR_CRYPTO_INVALID_KEYTYPE(env,
320 return THROW_ERR_CRYPTO_OPERATION_FAILED(env,
335 return THROW_ERR_CRYPTO_OPERATION_FAILED(env,
340 return THROW_ERR_CRYPTO_OPERATION_FAILED(env,
348 Environment* env = Environment::GetCurrent(args);
358 ECDH::BufferToPoint(env,
362 return THROW_ERR_CRYPTO_OPERATION_FAILED(env,
368 return THROW_ERR_CRYPTO_OPERATION_FAILED(env,
396 Environment* env = Environment::GetCurrent(args);
403 return THROW_ERR_OUT_OF_RANGE(env, "key is too big");
407 node::Utf8Value curve(env->isolate(), args[1]);
411 return THROW_ERR_CRYPTO_INVALID_CURVE(env);
416 return THROW_ERR_CRYPTO_OPERATION_FAILED(env, "Failed to get EC_GROUP");
419 ECDH::BufferToPoint(env,
424 return THROW_ERR_CRYPTO_OPERATION_FAILED(env,
434 if (!ECPointToBuffer(env, group.get(), pub.get(), form, &error).ToLocal(&buf))
435 return THROW_ERR_CRYPTO_OPERATION_FAILED(env, error);
445 Environment* env,
449 *result = out->ToArrayBuffer(env);
458 Environment* env = Environment::GetCurrent(args);
467 Utf8Value name(env->isolate(), args[offset]);
474 THROW_ERR_CRYPTO_INVALID_KEYTYPE(env);
485 bool ECDHBitsTraits::DeriveBits(Environment* env,
603 Environment* env = Environment::GetCurrent(args);
607 Utf8Value curve_name(env->isolate(), args[*offset]);
610 THROW_ERR_CRYPTO_INVALID_CURVE(env);
617 THROW_ERR_OUT_OF_RANGE(env, "Invalid param_encoding specified");
757 Environment* env,
778 ThrowCryptoError(env, ERR_get_error(),
784 env->context(),
785 env->jwk_kty_string(),
786 env->jwk_ec_string()).IsNothing()) {
791 env,
793 env->jwk_x_string(),
797 env,
799 env->jwk_y_string(),
809 crv_name = OneByteString(env->isolate(), "P-256");
812 crv_name = OneByteString(env->isolate(), "secp256k1");
815 crv_name = OneByteString(env->isolate(), "P-384");
818 crv_name = OneByteString(env->isolate(), "P-521");
822 env, "Unsupported JWK EC curve: %s.", OBJ_nid2sn(nid));
827 env->context(),
828 env->jwk_crv_string(),
836 env,
838 env->jwk_d_string(),
847 Environment* env,
871 env->context(),
872 env->jwk_crv_string(),
873 OneByteString(env->isolate(), curve)).IsNothing()) {
890 env->isolate(), out.data<const char>(), len, BASE64URL, &error)
892 !target->Set(env->context(), env->jwk_d_string(), encoded).IsJust()) {
894 env->isolate()->ThrowException(error);
902 env->isolate(), out.data<const char>(), len, BASE64URL, &error)
904 !target->Set(env->context(), env->jwk_x_string(), encoded).IsJust()) {
906 env->isolate()->ThrowException(error);
911 env->context(),
912 env->jwk_kty_string(),
913 env->jwk_okp_string()).IsNothing()) {
921 Environment* env,
926 Utf8Value curve(env->isolate(), args[offset].As<String>());
930 THROW_ERR_CRYPTO_INVALID_CURVE(env);
938 if (!jwk->Get(env->context(), env->jwk_x_string()).ToLocal(&x_value) ||
939 !jwk->Get(env->context(), env->jwk_y_string()).ToLocal(&y_value) ||
940 !jwk->Get(env->context(), env->jwk_d_string()).ToLocal(&d_value)) {
947 THROW_ERR_CRYPTO_INVALID_JWK(env, "Invalid JWK EC key");
955 THROW_ERR_CRYPTO_INVALID_JWK(env, "Invalid JWK EC key");
959 ByteSource x = ByteSource::FromEncodedString(env, x_value.As<String>());
960 ByteSource y = ByteSource::FromEncodedString(env, y_value.As<String>());
966 THROW_ERR_CRYPTO_INVALID_JWK(env, "Invalid JWK EC key");
971 ByteSource d = ByteSource::FromEncodedString(env, d_value.As<String>());
973 THROW_ERR_CRYPTO_INVALID_JWK(env, "Invalid JWK EC key");
985 Environment* env,
999 env->context(),
1000 env->named_curve_string(),
1001 OneByteString(env->isolate(), OBJ_nid2sn(nid)));