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

Function exportKeySync

lib/internal/crypto/webcrypto.js:693–759  ·  view source on GitHub ↗
(format, key)

Source from the content-addressed store, hash-verified

691}
692
693function exportKeySync(format, key) {
694 const algorithm = getCryptoKeyAlgorithm(key);
695 try {
696 normalizeAlgorithm(algorithm, 'exportKey');
697 } catch {
698 throw lazyDOMException(
699 `${algorithm.name} key export is not supported`, 'NotSupportedError');
700 }
701
702 if (!getCryptoKeyExtractable(key))
703 throw lazyDOMException('key is not extractable', 'InvalidAccessError');
704
705 const type = getCryptoKeyType(key);
706 let result;
707 switch (format) {
708 case 'spki': {
709 if (type === 'public') {
710 result = exportKeySpki(key);
711 }
712 break;
713 }
714 case 'pkcs8': {
715 if (type === 'private') {
716 result = exportKeyPkcs8(key);
717 }
718 break;
719 }
720 case 'jwk': {
721 result = exportKeyJWK(key);
722 break;
723 }
724 case 'raw-secret': {
725 if (type === 'secret') {
726 result = exportKeyRawSecret(key, format);
727 }
728 break;
729 }
730 case 'raw-public': {
731 if (type === 'public') {
732 result = exportKeyRawPublic(key, format);
733 }
734 break;
735 }
736 case 'raw-seed': {
737 if (type === 'private') {
738 result = exportKeyRawSeed(key);
739 }
740 break;
741 }
742 case 'raw': {
743 if (type === 'secret') {
744 result = exportKeyRawSecret(key, format);
745 } else if (type === 'public') {
746 result = exportKeyRawPublic(key, format);
747 }
748 break;
749 }
750 }

Callers 2

exportKeyImplFunction · 0.85
wrapKeyImplFunction · 0.85

Calls 11

getCryptoKeyAlgorithmFunction · 0.85
lazyDOMExceptionFunction · 0.85
getCryptoKeyExtractableFunction · 0.85
getCryptoKeyTypeFunction · 0.85
exportKeySpkiFunction · 0.85
exportKeyPkcs8Function · 0.85
exportKeyJWKFunction · 0.85
exportKeyRawSecretFunction · 0.85
exportKeyRawPublicFunction · 0.85
exportKeyRawSeedFunction · 0.85
normalizeAlgorithmFunction · 0.70

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…