MCPcopy Index your code
hub / github.com/nodejs/node / aesImportKey

Function aesImportKey

lib/internal/crypto/aes.js:198–248  ·  view source on GitHub ↗
(
  algorithm,
  format,
  keyData,
  extractable,
  usages)

Source from the content-addressed store, hash-verified

196}
197
198function aesImportKey(
199 algorithm,
200 format,
201 keyData,
202 extractable,
203 usages) {
204 const { name } = algorithm;
205 const usagesSet = validateKeyUsages(usages, kUsages[name], name);
206
207 let handle;
208 let length;
209 switch (format) {
210 case 'KeyObjectHandle': {
211 length = keyData.getSymmetricKeySize() * 8;
212 validateKeyLength(length);
213 handle = keyData;
214 break;
215 }
216 case 'raw-secret':
217 case 'raw': {
218 if (format === 'raw' && name === 'AES-OCB') {
219 return undefined;
220 }
221 length = keyData.byteLength * 8;
222 validateKeyLength(length);
223 handle = importSecretKey(keyData);
224 break;
225 }
226 case 'jwk': {
227 validateJwk(keyData, 'oct', extractable, usagesSet, 'enc');
228 handle = importJwkSecretKey(keyData);
229 length = handle.getSymmetricKeySize() * 8;
230 validateKeyLength(length);
231 if (keyData.alg !== undefined) {
232 if (keyData.alg !== getAlgorithmName(algorithm.name, length))
233 throw lazyDOMException(
234 'JWK "alg" does not match the requested algorithm',
235 'DataError');
236 }
237 break;
238 }
239 default:
240 return undefined;
241 }
242
243 return new InternalCryptoKey(
244 handle,
245 { name, length },
246 getUsagesMask(usagesSet),
247 extractable);
248}
249
250module.exports = {
251 aesCipher,

Callers

nothing calls this directly

Calls 8

validateKeyUsagesFunction · 0.85
importSecretKeyFunction · 0.85
validateJwkFunction · 0.85
importJwkSecretKeyFunction · 0.85
lazyDOMExceptionFunction · 0.85
getUsagesMaskFunction · 0.85
validateKeyLengthFunction · 0.70
getAlgorithmNameFunction · 0.70

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…