Home
last modified time | relevance | path

Searched refs:keylen (Results 1 - 25 of 535) sorted by relevance

12345678910>>...22

/third_party/openssl/test/recipes/
H A D20-test_kdf.t19 { cmd => [qw{openssl kdf -keylen 16 -digest SHA256 -kdfopt secret:secret -kdfopt seed:seed TLS1-PRF}],
22 { cmd => [qw{openssl kdf -keylen 16 -digest MD5-SHA1 -kdfopt secret:secret -kdfopt seed:seed TLS1-PRF}],
25 { cmd => [qw{openssl kdf -keylen 10 -digest SHA256 -kdfopt key:secret -kdfopt salt:salt -kdfopt info:label HKDF}],
28 { cmd => [qw{openssl kdf -keylen 25 -digest SHA256 -kdfopt pass:passwordPASSWORDpassword -kdfopt salt:saltSALTsaltSALTsaltSALTsaltSALTsalt -kdfopt iter:4096 PBKDF2}],
31 { cmd => [qw{openssl kdf -keylen 64 -mac KMAC128 -kdfopt maclen:20 -kdfopt hexkey:b74a149a161546f8c20b06ac4ed4 -kdfopt hexinfo:348a37a27ef1282f5f020dcc -kdfopt hexsalt:3638271ccd68a25dc24ecddd39ef3f89 SSKDF}],
34 { cmd => [qw{openssl kdf -keylen 16 -mac HMAC -digest SHA256 -kdfopt hexkey:b74a149a161546f8c20b06ac4ed4 -kdfopt hexinfo:348a37a27ef1282f5f020dcc -kdfopt hexsalt:3638271ccd68a25dc24ecddd39ef3f89 SSKDF}],
37 { cmd => [qw{openssl kdf -keylen 14 -digest SHA224 -kdfopt hexkey:6dbdc23f045488e4062757b06b9ebae183fc5a5946d80db93fec6f62ec07e3727f0126aed12ce4b262f47d48d54287f81d474c7c3b1850e9 -kdfopt hexinfo:a1b2c3d4e54341565369643c832e9849dcdba71e9a3139e606e095de3c264a66e98a165854cd07989b1ee0ec3f8dbe SSKDF}],
40 { cmd => [qw{openssl kdf -keylen 16 -digest SHA256 -kdfopt hexkey:0102030405 -kdfopt hexxcghash:06090A -kdfopt hexsession_id:01020304 -kdfopt type:A SSHKDF}],
45 { cmd => [qw{openssl kdf -keylen 16 -kdfopt digest:SHA256 -kdfopt secret:secret -kdfopt seed:seed TLS1-PRF}],
48 { cmd => [qw{openssl kdf -keylen 1
[all...]
/third_party/node/deps/openssl/openssl/providers/implementations/exchange/
H A Decx_exch.c39 size_t keylen; member
44 static void *ecx_newctx(void *provctx, size_t keylen) in ecx_newctx() argument
57 ctx->keylen = keylen; in ecx_newctx()
83 || key->keylen != ecxctx->keylen in ecx_init()
105 || key->keylen != ecxctx->keylen in ecx_set_peer()
131 if (!ossl_assert(ecxctx->keylen == X25519_KEYLEN in ecx_derive()
132 || ecxctx->keylen in ecx_derive()
[all...]
/third_party/openssl/providers/implementations/exchange/
H A Decx_exch.c39 size_t keylen; member
44 static void *ecx_newctx(void *provctx, size_t keylen) in ecx_newctx() argument
57 ctx->keylen = keylen; in ecx_newctx()
83 || key->keylen != ecxctx->keylen in ecx_init()
105 || key->keylen != ecxctx->keylen in ecx_set_peer()
131 if (!ossl_assert(ecxctx->keylen == X25519_KEYLEN in ecx_derive()
132 || ecxctx->keylen in ecx_derive()
[all...]
/third_party/libwebsockets/lib/core/
H A Dlws_map.c41 size_t keylen; member
180 const lws_map_key_t key, size_t keylen, in lws_map_item_create()
189 item = lws_map_item_lookup(map, key, keylen); in lws_map_item_create()
193 item = map->info._alloc(map, sizeof(*item) + keylen + valuelen); in lws_map_item_create()
198 item->keylen = keylen; in lws_map_item_create()
202 memcpy(u, key, keylen); in lws_map_item_create()
203 u += keylen; in lws_map_item_create()
207 h = map->info._hash(key, keylen); in lws_map_item_create()
228 lws_map_item_lookup(lws_map_t *map, const lws_map_key_t key, size_t keylen) in lws_map_item_lookup() argument
179 lws_map_item_create(lws_map_t *map, const lws_map_key_t key, size_t keylen, const lws_map_value_t value, size_t valuelen) lws_map_item_create() argument
[all...]
/third_party/node/lib/internal/crypto/
H A Dpbkdf2.js33 function pbkdf2(password, salt, iterations, keylen, digest, callback) {
39 ({ password, salt, iterations, keylen, digest } =
40 check(password, salt, iterations, keylen, digest));
49 keylen,
65 function pbkdf2Sync(password, salt, iterations, keylen, digest) {
66 ({ password, salt, iterations, keylen, digest } =
67 check(password, salt, iterations, keylen, digest));
74 keylen,
86 function check(password, salt, iterations, keylen, digest) {
94 validateInt32(keylen, 'keyle
[all...]
H A Dscrypt.js41 function scrypt(password, salt, keylen, options, callback = defaults) {
47 options = check(password, salt, keylen, options);
49 ({ password, salt, keylen } = options);
54 kCryptoJobAsync, password, salt, N, r, p, maxmem, keylen);
69 function scryptSync(password, salt, keylen, options = defaults) {
70 options = check(password, salt, keylen, options);
72 ({ password, salt, keylen } = options);
74 kCryptoJobSync, password, salt, N, r, p, maxmem, keylen);
85 function check(password, salt, keylen, options) {
91 validateInt32(keylen, 'keyle
[all...]
/third_party/ffmpeg/libavutil/
H A Dhmac.c46 int keylen; member
140 void av_hmac_init(AVHMAC *c, const uint8_t *key, unsigned int keylen) in av_hmac_init() argument
144 if (keylen > c->blocklen) { in av_hmac_init()
146 c->update(c->hash, key, keylen); in av_hmac_init()
148 c->keylen = c->hashlen; in av_hmac_init()
150 memcpy(c->key, key, keylen); in av_hmac_init()
151 c->keylen = keylen; in av_hmac_init()
154 for (i = 0; i < c->keylen; i++) in av_hmac_init()
156 for (i = c->keylen; in av_hmac_init()
184 av_hmac_calc(AVHMAC *c, const uint8_t *data, unsigned int len, const uint8_t *key, unsigned int keylen, uint8_t *out, unsigned int outlen) av_hmac_calc() argument
[all...]
/third_party/node/deps/openssl/openssl/crypto/cms/
H A Dcms_enc.c134 ec->keylen = tkeylen; in ossl_cms_EncryptedContent_init_bio()
143 if (ec->keylen != tkeylen) { in ossl_cms_EncryptedContent_init_bio()
145 if (EVP_CIPHER_CTX_set_key_length(ctx, ec->keylen) <= 0) { in ossl_cms_EncryptedContent_init_bio()
155 OPENSSL_clear_free(ec->key, ec->keylen); in ossl_cms_EncryptedContent_init_bio()
157 ec->keylen = tkeylen; in ossl_cms_EncryptedContent_init_bio()
197 OPENSSL_clear_free(ec->key, ec->keylen); in ossl_cms_EncryptedContent_init_bio()
209 const unsigned char *key, size_t keylen, in ossl_cms_EncryptedContent_init()
214 if ((ec->key = OPENSSL_malloc(keylen)) == NULL) { in ossl_cms_EncryptedContent_init()
218 memcpy(ec->key, key, keylen); in ossl_cms_EncryptedContent_init()
220 ec->keylen in ossl_cms_EncryptedContent_init()
207 ossl_cms_EncryptedContent_init(CMS_EncryptedContentInfo *ec, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, const CMS_CTX *cms_ctx) ossl_cms_EncryptedContent_init() argument
226 CMS_EncryptedData_set1_key(CMS_ContentInfo *cms, const EVP_CIPHER *ciph, const unsigned char *key, size_t keylen) CMS_EncryptedData_set1_key() argument
[all...]
/third_party/openssl/crypto/cms/
H A Dcms_enc.c133 ec->keylen = tkeylen; in ossl_cms_EncryptedContent_init_bio()
142 if (ec->keylen != tkeylen) { in ossl_cms_EncryptedContent_init_bio()
144 if (EVP_CIPHER_CTX_set_key_length(ctx, ec->keylen) <= 0) { in ossl_cms_EncryptedContent_init_bio()
154 OPENSSL_clear_free(ec->key, ec->keylen); in ossl_cms_EncryptedContent_init_bio()
156 ec->keylen = tkeylen; in ossl_cms_EncryptedContent_init_bio()
196 OPENSSL_clear_free(ec->key, ec->keylen); in ossl_cms_EncryptedContent_init_bio()
208 const unsigned char *key, size_t keylen, in ossl_cms_EncryptedContent_init()
213 if ((ec->key = OPENSSL_malloc(keylen)) == NULL) { in ossl_cms_EncryptedContent_init()
217 memcpy(ec->key, key, keylen); in ossl_cms_EncryptedContent_init()
219 ec->keylen in ossl_cms_EncryptedContent_init()
206 ossl_cms_EncryptedContent_init(CMS_EncryptedContentInfo *ec, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, const CMS_CTX *cms_ctx) ossl_cms_EncryptedContent_init() argument
225 CMS_EncryptedData_set1_key(CMS_ContentInfo *cms, const EVP_CIPHER *ciph, const unsigned char *key, size_t keylen) CMS_EncryptedData_set1_key() argument
[all...]
/third_party/node/deps/openssl/openssl/crypto/evp/
H A De_camellia.c142 # define BLOCK_CIPHER_generic(nid,keylen,blocksize,ivlen,nmode,mode,MODE,flags) \
143 static const EVP_CIPHER cmll_t4_##keylen##_##mode = { \
144 nid##_##keylen##_##nmode,blocksize,keylen/8,ivlen, \
152 static const EVP_CIPHER camellia_##keylen##_##mode = { \
153 nid##_##keylen##_##nmode,blocksize, \
154 keylen/8,ivlen, \
162 const EVP_CIPHER *EVP_camellia_##keylen##_##mode(void) \
163 { return SPARC_CMLL_CAPABLE?&cmll_t4_##keylen##_##mode:&camellia_##keylen##
[all...]
H A Dp5_crpt2.c24 const EVP_MD *digest, int keylen, unsigned char *out, in ossl_pkcs5_pbkdf2_hmac_ex()
60 if (EVP_KDF_derive(kctx, out, keylen, params) != 1) in ossl_pkcs5_pbkdf2_hmac_ex()
77 0, keylen, out, keylen); in ossl_pkcs5_pbkdf2_hmac_ex()
84 int saltlen, int iter, const EVP_MD *digest, int keylen, in PKCS5_PBKDF2_HMAC()
88 keylen, out, NULL, NULL); in PKCS5_PBKDF2_HMAC()
94 int keylen, unsigned char *out) in PKCS5_PBKDF2_HMAC_SHA1()
101 digest, keylen, out, NULL, NULL); in PKCS5_PBKDF2_HMAC_SHA1()
188 unsigned int keylen = 0; in PKCS5_v2_PBKDF2_keyivgen_ex() local
198 keylen in PKCS5_v2_PBKDF2_keyivgen_ex()
22 ossl_pkcs5_pbkdf2_hmac_ex(const char *pass, int passlen, const unsigned char *salt, int saltlen, int iter, const EVP_MD *digest, int keylen, unsigned char *out, OSSL_LIB_CTX *libctx, const char *propq) ossl_pkcs5_pbkdf2_hmac_ex() argument
83 PKCS5_PBKDF2_HMAC(const char *pass, int passlen, const unsigned char *salt, int saltlen, int iter, const EVP_MD *digest, int keylen, unsigned char *out) PKCS5_PBKDF2_HMAC() argument
92 PKCS5_PBKDF2_HMAC_SHA1(const char *pass, int passlen, const unsigned char *salt, int saltlen, int iter, int keylen, unsigned char *out) PKCS5_PBKDF2_HMAC_SHA1() argument
[all...]
/third_party/openssl/crypto/evp/
H A De_camellia.c142 # define BLOCK_CIPHER_generic(nid,keylen,blocksize,ivlen,nmode,mode,MODE,flags) \
143 static const EVP_CIPHER cmll_t4_##keylen##_##mode = { \
144 nid##_##keylen##_##nmode,blocksize,keylen/8,ivlen, \
152 static const EVP_CIPHER camellia_##keylen##_##mode = { \
153 nid##_##keylen##_##nmode,blocksize, \
154 keylen/8,ivlen, \
162 const EVP_CIPHER *EVP_camellia_##keylen##_##mode(void) \
163 { return SPARC_CMLL_CAPABLE?&cmll_t4_##keylen##_##mode:&camellia_##keylen##
[all...]
H A Dp5_crpt2.c24 const EVP_MD *digest, int keylen, unsigned char *out, in ossl_pkcs5_pbkdf2_hmac_ex()
60 if (EVP_KDF_derive(kctx, out, keylen, params) != 1) in ossl_pkcs5_pbkdf2_hmac_ex()
77 0, keylen, out, keylen); in ossl_pkcs5_pbkdf2_hmac_ex()
84 int saltlen, int iter, const EVP_MD *digest, int keylen, in PKCS5_PBKDF2_HMAC()
88 keylen, out, NULL, NULL); in PKCS5_PBKDF2_HMAC()
94 int keylen, unsigned char *out) in PKCS5_PBKDF2_HMAC_SHA1()
101 digest, keylen, out, NULL, NULL); in PKCS5_PBKDF2_HMAC_SHA1()
188 unsigned int keylen = 0; in PKCS5_v2_PBKDF2_keyivgen_ex() local
198 keylen in PKCS5_v2_PBKDF2_keyivgen_ex()
22 ossl_pkcs5_pbkdf2_hmac_ex(const char *pass, int passlen, const unsigned char *salt, int saltlen, int iter, const EVP_MD *digest, int keylen, unsigned char *out, OSSL_LIB_CTX *libctx, const char *propq) ossl_pkcs5_pbkdf2_hmac_ex() argument
83 PKCS5_PBKDF2_HMAC(const char *pass, int passlen, const unsigned char *salt, int saltlen, int iter, const EVP_MD *digest, int keylen, unsigned char *out) PKCS5_PBKDF2_HMAC() argument
92 PKCS5_PBKDF2_HMAC_SHA1(const char *pass, int passlen, const unsigned char *salt, int saltlen, int iter, int keylen, unsigned char *out) PKCS5_PBKDF2_HMAC_SHA1() argument
[all...]
/third_party/node/deps/openssl/openssl/providers/implementations/ciphers/
H A Dcipher_aes_xts.c68 static int aes_xts_init(void *vctx, const unsigned char *key, size_t keylen, in aes_xts_init() argument
85 if (keylen != ctx->keylen) { in aes_xts_init()
89 if (!aes_xts_check_keys_differ(key, keylen / 2, enc)) in aes_xts_init()
91 if (!ctx->hw->init(ctx, key, keylen)) in aes_xts_init()
97 static int aes_xts_einit(void *vctx, const unsigned char *key, size_t keylen, in aes_xts_einit() argument
101 return aes_xts_init(vctx, key, keylen, iv, ivlen, params, 1); in aes_xts_einit()
104 static int aes_xts_dinit(void *vctx, const unsigned char *key, size_t keylen, in aes_xts_dinit() argument
108 return aes_xts_init(vctx, key, keylen, iv, ivlen, params, 0); in aes_xts_dinit()
241 size_t keylen; in aes_xts_set_ctx_params() local
[all...]
H A Dcipher_tdes_common.c64 static int tdes_init(void *vctx, const unsigned char *key, size_t keylen, in tdes_init() argument
89 if (keylen != ctx->keylen) { in tdes_init()
93 if (!ctx->hw->init(ctx, key, ctx->keylen)) in tdes_init()
100 int ossl_tdes_einit(void *vctx, const unsigned char *key, size_t keylen, in ossl_tdes_einit() argument
104 return tdes_init(vctx, key, keylen, iv, ivlen, params, 1); in ossl_tdes_einit()
107 int ossl_tdes_dinit(void *vctx, const unsigned char *key, size_t keylen, in ossl_tdes_dinit() argument
111 return tdes_init(vctx, key, keylen, iv, ivlen, params, 0); in ossl_tdes_dinit()
122 size_t kl = ctx->keylen; in tdes_generatekey()
H A Dcipher_aes_siv.c42 ctx->keylen = keybits / 8; in aes_siv_newctx()
79 static int siv_init(void *vctx, const unsigned char *key, size_t keylen, in siv_init() argument
91 if (keylen != ctx->keylen) { in siv_init()
95 if (!ctx->hw->initkey(ctx, key, ctx->keylen)) in siv_init()
101 static int siv_einit(void *vctx, const unsigned char *key, size_t keylen, in siv_einit() argument
105 return siv_init(vctx, key, keylen, iv, ivlen, params, 1); in siv_einit()
108 static int siv_dinit(void *vctx, const unsigned char *key, size_t keylen, in siv_dinit() argument
112 return siv_init(vctx, key, keylen, iv, ivlen, params, 0); in siv_dinit()
182 if (p != NULL && !OSSL_PARAM_set_size_t(p, ctx->keylen)) { in aes_siv_get_ctx_params()
230 size_t keylen; aes_siv_set_ctx_params() local
[all...]
H A Dcipher_aes_hw.c20 const unsigned char *key, size_t keylen) in cipher_hw_aes_initkey()
32 ret = HWAES_set_decrypt_key(key, keylen * 8, ks); in cipher_hw_aes_initkey()
47 ret = AES_set_decrypt_key(key, keylen * 8, ks); in cipher_hw_aes_initkey()
54 ret = vpaes_set_decrypt_key(key, keylen * 8, ks); in cipher_hw_aes_initkey()
61 ret = AES_set_decrypt_key(key, keylen * 8, ks); in cipher_hw_aes_initkey()
69 ret = HWAES_set_encrypt_key(key, keylen * 8, ks); in cipher_hw_aes_initkey()
92 ret = AES_set_encrypt_key(key, keylen * 8, ks); in cipher_hw_aes_initkey()
99 ret = vpaes_set_encrypt_key(key, keylen * 8, ks); in cipher_hw_aes_initkey()
106 ret = AES_set_encrypt_key(key, keylen * 8, ks); in cipher_hw_aes_initkey()
19 cipher_hw_aes_initkey(PROV_CIPHER_CTX *dat, const unsigned char *key, size_t keylen) cipher_hw_aes_initkey() argument
/third_party/openssl/providers/implementations/ciphers/
H A Dcipher_aes_xts.c68 static int aes_xts_init(void *vctx, const unsigned char *key, size_t keylen, in aes_xts_init() argument
85 if (keylen != ctx->keylen) { in aes_xts_init()
89 if (!aes_xts_check_keys_differ(key, keylen / 2, enc)) in aes_xts_init()
91 if (!ctx->hw->init(ctx, key, keylen)) in aes_xts_init()
97 static int aes_xts_einit(void *vctx, const unsigned char *key, size_t keylen, in aes_xts_einit() argument
101 return aes_xts_init(vctx, key, keylen, iv, ivlen, params, 1); in aes_xts_einit()
104 static int aes_xts_dinit(void *vctx, const unsigned char *key, size_t keylen, in aes_xts_dinit() argument
108 return aes_xts_init(vctx, key, keylen, iv, ivlen, params, 0); in aes_xts_dinit()
241 size_t keylen; in aes_xts_set_ctx_params() local
[all...]
H A Dcipher_tdes_common.c64 static int tdes_init(void *vctx, const unsigned char *key, size_t keylen, in tdes_init() argument
89 if (keylen != ctx->keylen) { in tdes_init()
93 if (!ctx->hw->init(ctx, key, ctx->keylen)) in tdes_init()
99 int ossl_tdes_einit(void *vctx, const unsigned char *key, size_t keylen, in ossl_tdes_einit() argument
103 return tdes_init(vctx, key, keylen, iv, ivlen, params, 1); in ossl_tdes_einit()
106 int ossl_tdes_dinit(void *vctx, const unsigned char *key, size_t keylen, in ossl_tdes_dinit() argument
110 return tdes_init(vctx, key, keylen, iv, ivlen, params, 0); in ossl_tdes_dinit()
121 size_t kl = ctx->keylen; in tdes_generatekey()
H A Dcipher_aes_siv.c42 ctx->keylen = keybits / 8; in aes_siv_newctx()
79 static int siv_init(void *vctx, const unsigned char *key, size_t keylen, in siv_init() argument
91 if (keylen != ctx->keylen) { in siv_init()
95 if (!ctx->hw->initkey(ctx, key, ctx->keylen)) in siv_init()
101 static int siv_einit(void *vctx, const unsigned char *key, size_t keylen, in siv_einit() argument
105 return siv_init(vctx, key, keylen, iv, ivlen, params, 1); in siv_einit()
108 static int siv_dinit(void *vctx, const unsigned char *key, size_t keylen, in siv_dinit() argument
112 return siv_init(vctx, key, keylen, iv, ivlen, params, 0); in siv_dinit()
182 if (p != NULL && !OSSL_PARAM_set_size_t(p, ctx->keylen)) { in aes_siv_get_ctx_params()
230 size_t keylen; aes_siv_set_ctx_params() local
[all...]
/third_party/node/test/parallel/
H A Dtest-tls-dhe.js55 function test(dhparam, keylen, expectedCipher) {
71 assert(keylen === null ||
72 stdout.includes(`Server Temp Key: DH, ${keylen} bits`));
81 function testCustomParam(keylen, expectedCipher) {
82 const dhparam = loadDHParam(keylen);
83 if (keylen === 'error') keylen = null;
84 return test(dhparam, keylen, expectedCipher);
/third_party/node/deps/openssl/openssl/providers/implementations/macs/
H A Dhmac_prov.c53 size_t keylen; member
97 OPENSSL_secure_clear_free(macctx->key, macctx->keylen); in hmac_free()
127 dst->key = OPENSSL_secure_malloc(src->keylen > 0 ? src->keylen : 1); in hmac_dup()
132 memcpy(dst->key, src->key, src->keylen); in hmac_dup()
152 const unsigned char *key, size_t keylen) in hmac_setkey()
157 OPENSSL_secure_clear_free(macctx->key, macctx->keylen); in hmac_setkey()
159 macctx->key = OPENSSL_secure_malloc(keylen > 0 ? keylen : 1); in hmac_setkey()
162 memcpy(macctx->key, key, keylen); in hmac_setkey()
151 hmac_setkey(struct hmac_data_st *macctx, const unsigned char *key, size_t keylen) hmac_setkey() argument
173 hmac_init(void *vmacctx, const unsigned char *key, size_t keylen, const OSSL_PARAM params[]) hmac_init() argument
[all...]
/third_party/openssl/providers/implementations/macs/
H A Dhmac_prov.c53 size_t keylen; member
97 OPENSSL_secure_clear_free(macctx->key, macctx->keylen); in hmac_free()
127 dst->key = OPENSSL_secure_malloc(src->keylen > 0 ? src->keylen : 1); in hmac_dup()
132 memcpy(dst->key, src->key, src->keylen); in hmac_dup()
152 const unsigned char *key, size_t keylen) in hmac_setkey()
157 OPENSSL_secure_clear_free(macctx->key, macctx->keylen); in hmac_setkey()
159 macctx->key = OPENSSL_secure_malloc(keylen > 0 ? keylen : 1); in hmac_setkey()
162 memcpy(macctx->key, key, keylen); in hmac_setkey()
151 hmac_setkey(struct hmac_data_st *macctx, const unsigned char *key, size_t keylen) hmac_setkey() argument
173 hmac_init(void *vmacctx, const unsigned char *key, size_t keylen, const OSSL_PARAM params[]) hmac_init() argument
[all...]
/third_party/nghttp2/contrib/
H A Dtlsticketupdate.go55 var keylen int var
58 keylen = 48
60 keylen = 80
68 makeKey(keylen), // current encryption key
69 makeKey(keylen), // next encryption key; now decryption only
79 if err := binary.Write(buf, binary.BigEndian, uint16(keylen)); err != nil {
107 newKeys[n-1] = makeKey(keylen)
/third_party/node/benchmark/crypto/
H A Drsa-encrypt-decrypt-throughput.js21 keylen: keylen_list,
25 function main({ len, algo, keylen, n }) {
28 StreamWrite(algo, keylen, message, n, len);
31 function StreamWrite(algo, keylen, message, n, len) {
36 const privateKey = RSA_PrivatePem[keylen];
37 const publicKey = RSA_PublicPem[keylen];

Completed in 10 milliseconds

12345678910>>...22