MCPcopy Index your code
hub / github.com/NativeScript/NativeScript / sign

Method sign

packages/core/wgc/crypto/SubtleCrypto.ts:350–412  ·  view source on GitHub ↗
(algorithm: { name: 'HMAC' } | 'HMAC', key: CryptoKey, data: TypedArray | ArrayBuffer)

Source from the content-addressed store, hash-verified

348 }
349
350 sign(algorithm: { name: 'HMAC' } | 'HMAC', key: CryptoKey, data: TypedArray | ArrayBuffer) {
351 return new Promise((resolve, reject) => {
352 let error: Error;
353 const algorithmName = typeof algorithm === 'object' ? algorithm?.name : algorithm;
354 switch (algorithmName) {
355 case 'HMAC':
356 {
357 try {
358 if (__IOS__) {
359 const hash = parseHash(key.algorithm.hash.name);
360 const d = NSData.dataWithData(data as never);
361 const ret = NSCCrypto.signHmacHashData(key[native_], hash, d);
362 if (ret) {
363 resolve(interop.bufferFromData(ret));
364 } else {
365 reject(new Error('Failed to sign data'));
366 }
367 }
368
369 if (__ANDROID__) {
370 let algo;
371 switch (key.algorithm.hash.name) {
372 case 'SHA-1':
373 algo = 'HmacSHA1';
374 break;
375 case 'SHA-256':
376 algo = 'HmacSHA256';
377 break;
378 case 'SHA-384':
379 algo = 'HmacSHA384';
380 break;
381 case 'SHA-512':
382 algo = 'HmacSHA512';
383 break;
384 default:
385 error = new Error('Operation is not supported');
386 break;
387 }
388
389 if (error) {
390 reject(error);
391 return;
392 }
393
394 const ab = (<any>org).nativescript.winter_tc.Crypto.signHMAC(algo, key[native_], data);
395 resolve((<any>ArrayBuffer).from(ab));
396 }
397 } catch (error) {
398 reject(error);
399 }
400 }
401 break;
402 default:
403 error = new Error('Operation is not supported');
404 break;
405 }
406
407 if (error) {

Callers 1

gen_hmacFunction · 0.80

Calls 3

parseHashFunction · 0.85
signHMACMethod · 0.80
resolveFunction · 0.50

Tested by

no test coverage detected