@hxa-rn/react-native-quick-crypto 1.1.0-beta.1 → 1.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/LICENSE +8 -1
  2. package/README.md +172 -171
  3. package/dist/commonjs/blake3.js +1 -1
  4. package/dist/commonjs/blake3.js.map +1 -1
  5. package/dist/commonjs/cipher.js +1 -1
  6. package/dist/commonjs/cipher.js.map +1 -1
  7. package/dist/commonjs/dhKeyPair.js +1 -1
  8. package/dist/commonjs/dhKeyPair.js.map +1 -1
  9. package/dist/commonjs/diffie-hellman.js +1 -1
  10. package/dist/commonjs/diffie-hellman.js.map +1 -1
  11. package/dist/commonjs/dsa.js +1 -1
  12. package/dist/commonjs/dsa.js.map +1 -1
  13. package/dist/commonjs/ec.js +1 -1
  14. package/dist/commonjs/ec.js.map +1 -1
  15. package/dist/commonjs/ecdh.js +1 -1
  16. package/dist/commonjs/ecdh.js.map +1 -1
  17. package/dist/commonjs/ed.js +1 -1
  18. package/dist/commonjs/ed.js.map +1 -1
  19. package/dist/commonjs/hash.js +1 -1
  20. package/dist/commonjs/hash.js.map +1 -1
  21. package/dist/commonjs/hmac.js +1 -1
  22. package/dist/commonjs/hmac.js.map +1 -1
  23. package/dist/commonjs/index.js +2 -1
  24. package/dist/commonjs/index.js.map +1 -1
  25. package/dist/commonjs/keys/classes.js +1 -1
  26. package/dist/commonjs/keys/classes.js.map +1 -1
  27. package/dist/commonjs/keys/signVerify.js +1 -1
  28. package/dist/commonjs/keys/signVerify.js.map +1 -1
  29. package/dist/commonjs/mldsa.js +1 -1
  30. package/dist/commonjs/mldsa.js.map +1 -1
  31. package/dist/commonjs/mlkem.js +1 -1
  32. package/dist/commonjs/mlkem.js.map +1 -1
  33. package/dist/commonjs/rsa.js +1 -1
  34. package/dist/commonjs/rsa.js.map +1 -1
  35. package/dist/commonjs/x509certificate.js +1 -1
  36. package/dist/commonjs/x509certificate.js.map +1 -1
  37. package/dist/module/blake3.js +1 -1
  38. package/dist/module/cipher.js +1 -1
  39. package/dist/module/dhKeyPair.js +1 -1
  40. package/dist/module/diffie-hellman.js +1 -1
  41. package/dist/module/dsa.js +1 -1
  42. package/dist/module/ec.js +1 -1
  43. package/dist/module/ecdh.js +1 -1
  44. package/dist/module/ed.js +1 -1
  45. package/dist/module/hash.js +1 -1
  46. package/dist/module/hmac.js +1 -1
  47. package/dist/module/keys/classes.js +1 -1
  48. package/dist/module/keys/signVerify.js +1 -1
  49. package/dist/module/mldsa.js +1 -1
  50. package/dist/module/mlkem.js +1 -1
  51. package/dist/module/rsa.js +1 -1
  52. package/dist/module/x509certificate.js +1 -1
  53. package/harmony/quick_crypto/LICENSE +9 -2
  54. package/harmony/quick_crypto.har +0 -0
  55. package/package.json +87 -87
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNativeNitroModules","require","_keys","_utils","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","ML_KEM_VARIANTS","isMlKemKeyType","type","unpackEncapsulateResult","packed","view","DataView","ciphertextLen","getUint32","sharedKeyLen","headerSize","ciphertext","slice","sharedKey","MlKem","constructor","variant","native","NitroModules","createHybridObject","setVariant","generateKeyPair","KFormatType","DER","KeyEncoding","SPKI","PKCS8","generateKeyPairSync","getPublicKey","getPrivateKey","setPublicKey","keyData","format","setPrivateKey","encapsulate","encapsulateSync","decapsulate","decapsulateSync","exports","prepareKey","key","isPublic","KeyObject","Error","keyObject","isCryptoKey","cryptoKey","isStringOrBuffer","isPem","includes","PEM","undefined","keyType","toAB","createKeyObject","keyObj","data","kFormat","kType","PKCS1","SEC1","getVariantFromKey","handle","getAsymmetricKeyType","callback","doEncapsulate","mlkem","exportKey","result","process","nextTick","err","doDecapsulate","ciphertextBuffer","mlkem_generateKeyPairWebCrypto","extractable","keyUsages","hasAnyNotIn","lazyDOMException","publicUsages","getUsagesUnion","privateUsages","length","publicKeyData","privateKeyData","pub","publicKey","CryptoKey","name","priv","privateKey"],"sources":["mlkem.ts"],"sourcesContent":["import { NitroModules } from 'react-native-nitro-modules';\r\nimport type { MlKemKeyPair } from './specs/v1/mlKemKeyPair.nitro';\r\nimport {\r\n CryptoKey,\r\n KeyObject,\r\n PublicKeyObject,\r\n PrivateKeyObject,\r\n isCryptoKey,\r\n} from './keys';\r\nimport type {\r\n CryptoKeyPair,\r\n KeyUsage,\r\n SubtleAlgorithm,\r\n EncapsulateResult,\r\n BinaryLike,\r\n} from './utils';\r\nimport {\r\n hasAnyNotIn,\r\n lazyDOMException,\r\n getUsagesUnion,\r\n KFormatType,\r\n KeyEncoding,\r\n isStringOrBuffer,\r\n binaryLikeToArrayBuffer as toAB,\r\n} from './utils';\r\n\r\nexport type MlKemVariant = 'ML-KEM-512' | 'ML-KEM-768' | 'ML-KEM-1024';\r\n\r\ntype MlKemKeyType = 'ml-kem-512' | 'ml-kem-768' | 'ml-kem-1024';\r\n\r\ntype KeyInput = BinaryLike | KeyObject | CryptoKey | KeyInputObject;\r\n\r\nexport interface KeyInputObject {\r\n key: BinaryLike | KeyObject | CryptoKey;\r\n format?: 'pem' | 'der';\r\n type?: 'pkcs1' | 'pkcs8' | 'spki' | 'sec1';\r\n}\r\n\r\nconst ML_KEM_VARIANTS: Record<MlKemKeyType, MlKemVariant> = {\r\n 'ml-kem-512': 'ML-KEM-512',\r\n 'ml-kem-768': 'ML-KEM-768',\r\n 'ml-kem-1024': 'ML-KEM-1024',\r\n};\r\n\r\nfunction isMlKemKeyType(type: string): type is MlKemKeyType {\r\n return type in ML_KEM_VARIANTS;\r\n}\r\n\r\nfunction unpackEncapsulateResult(packed: ArrayBuffer): EncapsulateResult {\r\n const view = new DataView(packed);\r\n const ciphertextLen = view.getUint32(0, true);\r\n const sharedKeyLen = view.getUint32(4, true);\r\n const headerSize = 8;\r\n const ciphertext = packed.slice(headerSize, headerSize + ciphertextLen);\r\n const sharedKey = packed.slice(\r\n headerSize + ciphertextLen,\r\n headerSize + ciphertextLen + sharedKeyLen,\r\n );\r\n return { ciphertext, sharedKey };\r\n}\r\n\r\nexport class MlKem {\r\n variant: MlKemVariant;\r\n native: MlKemKeyPair;\r\n\r\n constructor(variant: MlKemVariant) {\r\n this.variant = variant;\r\n this.native = NitroModules.createHybridObject<MlKemKeyPair>('MlKemKeyPair');\r\n this.native.setVariant(variant);\r\n }\r\n\r\n async generateKeyPair(): Promise<void> {\r\n await this.native.generateKeyPair(\r\n KFormatType.DER,\r\n KeyEncoding.SPKI,\r\n KFormatType.DER,\r\n KeyEncoding.PKCS8,\r\n );\r\n }\r\n\r\n generateKeyPairSync(): void {\r\n this.native.generateKeyPairSync(\r\n KFormatType.DER,\r\n KeyEncoding.SPKI,\r\n KFormatType.DER,\r\n KeyEncoding.PKCS8,\r\n );\r\n }\r\n\r\n getPublicKey(): ArrayBuffer {\r\n return this.native.getPublicKey();\r\n }\r\n\r\n getPrivateKey(): ArrayBuffer {\r\n return this.native.getPrivateKey();\r\n }\r\n\r\n setPublicKey(keyData: ArrayBuffer, format: number, type: number): void {\r\n this.native.setPublicKey(keyData, format, type);\r\n }\r\n\r\n setPrivateKey(keyData: ArrayBuffer, format: number, type: number): void {\r\n this.native.setPrivateKey(keyData, format, type);\r\n }\r\n\r\n async encapsulate(): Promise<EncapsulateResult> {\r\n const packed = await this.native.encapsulate();\r\n return unpackEncapsulateResult(packed);\r\n }\r\n\r\n encapsulateSync(): EncapsulateResult {\r\n const packed = this.native.encapsulateSync();\r\n return unpackEncapsulateResult(packed);\r\n }\r\n\r\n async decapsulate(ciphertext: ArrayBuffer): Promise<ArrayBuffer> {\r\n return this.native.decapsulate(ciphertext);\r\n }\r\n\r\n decapsulateSync(ciphertext: ArrayBuffer): ArrayBuffer {\r\n return this.native.decapsulateSync(ciphertext);\r\n }\r\n}\r\n\r\nfunction prepareKey(\r\n key: KeyInput,\r\n isPublic: boolean,\r\n): { keyObject: KeyObject } {\r\n if (key instanceof KeyObject) {\r\n if (isPublic) {\r\n if (key.type === 'secret') {\r\n throw new Error('Cannot use secret key for encapsulation');\r\n }\r\n } else {\r\n if (key.type !== 'private') {\r\n throw new Error('Key must be a private key for decapsulation');\r\n }\r\n }\r\n return { keyObject: key };\r\n }\r\n\r\n if (isCryptoKey(key)) {\r\n const cryptoKey = key as CryptoKey;\r\n return prepareKey(cryptoKey.keyObject, isPublic);\r\n }\r\n\r\n if (isStringOrBuffer(key)) {\r\n const isPem = typeof key === 'string' && key.includes('-----BEGIN');\r\n const format = isPem ? KFormatType.PEM : undefined;\r\n const keyType = isPublic ? 'public' : 'private';\r\n const keyData = toAB(key);\r\n const keyObject = KeyObject.createKeyObject(keyType, keyData, format);\r\n return { keyObject };\r\n }\r\n\r\n if (typeof key === 'object' && 'key' in key) {\r\n const keyObj = key as KeyInputObject;\r\n const { key: data, format, type } = keyObj;\r\n\r\n if (data instanceof KeyObject) {\r\n return { keyObject: data };\r\n }\r\n\r\n if (isCryptoKey(data)) {\r\n return { keyObject: (data as CryptoKey).keyObject };\r\n }\r\n\r\n if (!isStringOrBuffer(data)) {\r\n throw new Error('Invalid key data type');\r\n }\r\n\r\n const isPem =\r\n format === 'pem' ||\r\n (typeof data === 'string' && data.includes('-----BEGIN'));\r\n const kFormat = isPem\r\n ? KFormatType.PEM\r\n : format === 'der'\r\n ? KFormatType.DER\r\n : undefined;\r\n\r\n let kType: KeyEncoding | undefined;\r\n if (type === 'pkcs8') kType = KeyEncoding.PKCS8;\r\n else if (type === 'pkcs1') kType = KeyEncoding.PKCS1;\r\n else if (type === 'sec1') kType = KeyEncoding.SEC1;\r\n else if (type === 'spki') kType = KeyEncoding.SPKI;\r\n\r\n const keyType = isPublic ? 'public' : 'private';\r\n const keyData = toAB(data);\r\n const keyObject = KeyObject.createKeyObject(\r\n keyType,\r\n keyData,\r\n kFormat,\r\n kType,\r\n );\r\n return { keyObject };\r\n }\r\n\r\n throw new Error('Invalid key input');\r\n}\r\n\r\nfunction getVariantFromKey(keyObject: KeyObject): MlKemVariant {\r\n const keyType = keyObject.handle.getAsymmetricKeyType();\r\n if (!isMlKemKeyType(keyType)) {\r\n throw new Error(\r\n `Key is not an ML-KEM key. Got asymmetricKeyType: ${keyType}`,\r\n );\r\n }\r\n return ML_KEM_VARIANTS[keyType];\r\n}\r\n\r\nexport function encapsulate(\r\n key: KeyInput,\r\n callback?: (err: Error | null, result?: EncapsulateResult) => void,\r\n): EncapsulateResult | void {\r\n const doEncapsulate = (): EncapsulateResult => {\r\n if (key === null || key === undefined) {\r\n throw new Error('Public key is required for encapsulation');\r\n }\r\n\r\n const { keyObject } = prepareKey(key, true);\r\n const variant = getVariantFromKey(keyObject);\r\n const mlkem = new MlKem(variant);\r\n\r\n const keyData = keyObject.handle.exportKey(\r\n KFormatType.DER,\r\n KeyEncoding.SPKI,\r\n );\r\n mlkem.setPublicKey(keyData, KFormatType.DER, KeyEncoding.SPKI);\r\n\r\n return mlkem.encapsulateSync();\r\n };\r\n\r\n if (callback) {\r\n try {\r\n const result = doEncapsulate();\r\n process.nextTick(callback, null, result);\r\n } catch (err) {\r\n process.nextTick(callback, err as Error);\r\n }\r\n return;\r\n }\r\n\r\n return doEncapsulate();\r\n}\r\n\r\nexport function decapsulate(\r\n key: KeyInput,\r\n ciphertext: BinaryLike,\r\n callback?: (err: Error | null, result?: ArrayBuffer) => void,\r\n): ArrayBuffer | void {\r\n const doDecapsulate = (): ArrayBuffer => {\r\n if (key === null || key === undefined) {\r\n throw new Error('Private key is required for decapsulation');\r\n }\r\n\r\n const { keyObject } = prepareKey(key, false);\r\n const variant = getVariantFromKey(keyObject);\r\n const mlkem = new MlKem(variant);\r\n\r\n const keyData = keyObject.handle.exportKey(\r\n KFormatType.DER,\r\n KeyEncoding.PKCS8,\r\n );\r\n mlkem.setPrivateKey(keyData, KFormatType.DER, KeyEncoding.PKCS8);\r\n\r\n const ciphertextBuffer = toAB(ciphertext) as ArrayBuffer;\r\n return mlkem.decapsulateSync(ciphertextBuffer);\r\n };\r\n\r\n if (callback) {\r\n try {\r\n const result = doDecapsulate();\r\n process.nextTick(callback, null, result);\r\n } catch (err) {\r\n process.nextTick(callback, err as Error);\r\n }\r\n return;\r\n }\r\n\r\n return doDecapsulate();\r\n}\r\n\r\nexport async function mlkem_generateKeyPairWebCrypto(\r\n variant: MlKemVariant,\r\n extractable: boolean,\r\n keyUsages: KeyUsage[],\r\n): Promise<CryptoKeyPair> {\r\n if (\r\n hasAnyNotIn(keyUsages, [\r\n 'encapsulateBits',\r\n 'encapsulateKey',\r\n 'decapsulateBits',\r\n 'decapsulateKey',\r\n ])\r\n ) {\r\n throw lazyDOMException(\r\n `Unsupported key usage for ${variant}`,\r\n 'SyntaxError',\r\n );\r\n }\r\n\r\n const publicUsages = getUsagesUnion(\r\n keyUsages,\r\n 'encapsulateBits',\r\n 'encapsulateKey',\r\n );\r\n const privateUsages = getUsagesUnion(\r\n keyUsages,\r\n 'decapsulateBits',\r\n 'decapsulateKey',\r\n );\r\n\r\n if (privateUsages.length === 0) {\r\n throw lazyDOMException('Usages cannot be empty', 'SyntaxError');\r\n }\r\n\r\n const mlkem = new MlKem(variant);\r\n await mlkem.generateKeyPair();\r\n\r\n const publicKeyData = mlkem.getPublicKey();\r\n const privateKeyData = mlkem.getPrivateKey();\r\n\r\n const pub = KeyObject.createKeyObject(\r\n 'public',\r\n publicKeyData,\r\n KFormatType.DER,\r\n KeyEncoding.SPKI,\r\n ) as PublicKeyObject;\r\n const publicKey = new CryptoKey(\r\n pub,\r\n { name: variant } as SubtleAlgorithm,\r\n publicUsages,\r\n true,\r\n );\r\n\r\n const priv = KeyObject.createKeyObject(\r\n 'private',\r\n privateKeyData,\r\n KFormatType.DER,\r\n KeyEncoding.PKCS8,\r\n ) as PrivateKeyObject;\r\n const privateKey = new CryptoKey(\r\n priv,\r\n { name: variant } as SubtleAlgorithm,\r\n privateUsages,\r\n extractable,\r\n );\r\n\r\n return { publicKey, privateKey };\r\n}\r\n"],"mappings":";;;;;;;;;AAAA,IAAAA,wBAAA,GAAAC,OAAA;AAEA,IAAAC,KAAA,GAAAD,OAAA;AAcA,IAAAE,MAAA,GAAAF,OAAA;AAQiB,SAAAG,gBAAAC,CAAA,EAAAC,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAE,cAAA,CAAAF,CAAA,MAAAD,CAAA,GAAAI,MAAA,CAAAC,cAAA,CAAAL,CAAA,EAAAC,CAAA,IAAAK,KAAA,EAAAJ,CAAA,EAAAK,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAAT,CAAA,CAAAC,CAAA,IAAAC,CAAA,EAAAF,CAAA;AAAA,SAAAG,eAAAD,CAAA,QAAAQ,CAAA,GAAAC,YAAA,CAAAT,CAAA,uCAAAQ,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAT,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAF,CAAA,GAAAE,CAAA,CAAAU,MAAA,CAAAC,WAAA,kBAAAb,CAAA,QAAAU,CAAA,GAAAV,CAAA,CAAAc,IAAA,CAAAZ,CAAA,EAAAD,CAAA,uCAAAS,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAAd,CAAA,GAAAe,MAAA,GAAAC,MAAA,EAAAf,CAAA;AAcjB,MAAMgB,eAAmD,GAAG;EAC1D,YAAY,EAAE,YAAY;EAC1B,YAAY,EAAE,YAAY;EAC1B,aAAa,EAAE;AACjB,CAAC;AAED,SAASC,cAAcA,CAACC,IAAY,EAAwB;EAC1D,OAAOA,IAAI,IAAIF,eAAe;AAChC;AAEA,SAASG,uBAAuBA,CAACC,MAAmB,EAAqB;EACvE,MAAMC,IAAI,GAAG,IAAIC,QAAQ,CAACF,MAAM,CAAC;EACjC,MAAMG,aAAa,GAAGF,IAAI,CAACG,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC;EAC7C,MAAMC,YAAY,GAAGJ,IAAI,CAACG,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC;EAC5C,MAAME,UAAU,GAAG,CAAC;EACpB,MAAMC,UAAU,GAAGP,MAAM,CAACQ,KAAK,CAACF,UAAU,EAAEA,UAAU,GAAGH,aAAa,CAAC;EACvE,MAAMM,SAAS,GAAGT,MAAM,CAACQ,KAAK,CAC5BF,UAAU,GAAGH,aAAa,EAC1BG,UAAU,GAAGH,aAAa,GAAGE,YAC/B,CAAC;EACD,OAAO;IAAEE,UAAU;IAAEE;EAAU,CAAC;AAClC;AAEO,MAAMC,KAAK,CAAC;EAIjBC,WAAWA,CAACC,OAAqB,EAAE;IAAAnC,eAAA;IAAAA,eAAA;IACjC,IAAI,CAACmC,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,MAAM,GAAGC,qCAAY,CAACC,kBAAkB,CAAe,cAAc,CAAC;IAC3E,IAAI,CAACF,MAAM,CAACG,UAAU,CAACJ,OAAO,CAAC;EACjC;EAEA,MAAMK,eAAeA,CAAA,EAAkB;IACrC,MAAM,IAAI,CAACJ,MAAM,CAACI,eAAe,CAC/BC,kBAAW,CAACC,GAAG,EACfC,kBAAW,CAACC,IAAI,EAChBH,kBAAW,CAACC,GAAG,EACfC,kBAAW,CAACE,KACd,CAAC;EACH;EAEAC,mBAAmBA,CAAA,EAAS;IAC1B,IAAI,CAACV,MAAM,CAACU,mBAAmB,CAC7BL,kBAAW,CAACC,GAAG,EACfC,kBAAW,CAACC,IAAI,EAChBH,kBAAW,CAACC,GAAG,EACfC,kBAAW,CAACE,KACd,CAAC;EACH;EAEAE,YAAYA,CAAA,EAAgB;IAC1B,OAAO,IAAI,CAACX,MAAM,CAACW,YAAY,CAAC,CAAC;EACnC;EAEAC,aAAaA,CAAA,EAAgB;IAC3B,OAAO,IAAI,CAACZ,MAAM,CAACY,aAAa,CAAC,CAAC;EACpC;EAEAC,YAAYA,CAACC,OAAoB,EAAEC,MAAc,EAAE9B,IAAY,EAAQ;IACrE,IAAI,CAACe,MAAM,CAACa,YAAY,CAACC,OAAO,EAAEC,MAAM,EAAE9B,IAAI,CAAC;EACjD;EAEA+B,aAAaA,CAACF,OAAoB,EAAEC,MAAc,EAAE9B,IAAY,EAAQ;IACtE,IAAI,CAACe,MAAM,CAACgB,aAAa,CAACF,OAAO,EAAEC,MAAM,EAAE9B,IAAI,CAAC;EAClD;EAEA,MAAMgC,WAAWA,CAAA,EAA+B;IAC9C,MAAM9B,MAAM,GAAG,MAAM,IAAI,CAACa,MAAM,CAACiB,WAAW,CAAC,CAAC;IAC9C,OAAO/B,uBAAuB,CAACC,MAAM,CAAC;EACxC;EAEA+B,eAAeA,CAAA,EAAsB;IACnC,MAAM/B,MAAM,GAAG,IAAI,CAACa,MAAM,CAACkB,eAAe,CAAC,CAAC;IAC5C,OAAOhC,uBAAuB,CAACC,MAAM,CAAC;EACxC;EAEA,MAAMgC,WAAWA,CAACzB,UAAuB,EAAwB;IAC/D,OAAO,IAAI,CAACM,MAAM,CAACmB,WAAW,CAACzB,UAAU,CAAC;EAC5C;EAEA0B,eAAeA,CAAC1B,UAAuB,EAAe;IACpD,OAAO,IAAI,CAACM,MAAM,CAACoB,eAAe,CAAC1B,UAAU,CAAC;EAChD;AACF;AAAC2B,OAAA,CAAAxB,KAAA,GAAAA,KAAA;AAED,SAASyB,UAAUA,CACjBC,GAAa,EACbC,QAAiB,EACS;EAC1B,IAAID,GAAG,YAAYE,eAAS,EAAE;IAC5B,IAAID,QAAQ,EAAE;MACZ,IAAID,GAAG,CAACtC,IAAI,KAAK,QAAQ,EAAE;QACzB,MAAM,IAAIyC,KAAK,CAAC,yCAAyC,CAAC;MAC5D;IACF,CAAC,MAAM;MACL,IAAIH,GAAG,CAACtC,IAAI,KAAK,SAAS,EAAE;QAC1B,MAAM,IAAIyC,KAAK,CAAC,6CAA6C,CAAC;MAChE;IACF;IACA,OAAO;MAAEC,SAAS,EAAEJ;IAAI,CAAC;EAC3B;EAEA,IAAI,IAAAK,iBAAW,EAACL,GAAG,CAAC,EAAE;IACpB,MAAMM,SAAS,GAAGN,GAAgB;IAClC,OAAOD,UAAU,CAACO,SAAS,CAACF,SAAS,EAAEH,QAAQ,CAAC;EAClD;EAEA,IAAI,IAAAM,uBAAgB,EAACP,GAAG,CAAC,EAAE;IACzB,MAAMQ,KAAK,GAAG,OAAOR,GAAG,KAAK,QAAQ,IAAIA,GAAG,CAACS,QAAQ,CAAC,YAAY,CAAC;IACnE,MAAMjB,MAAM,GAAGgB,KAAK,GAAG1B,kBAAW,CAAC4B,GAAG,GAAGC,SAAS;IAClD,MAAMC,OAAO,GAAGX,QAAQ,GAAG,QAAQ,GAAG,SAAS;IAC/C,MAAMV,OAAO,GAAG,IAAAsB,8BAAI,EAACb,GAAG,CAAC;IACzB,MAAMI,SAAS,GAAGF,eAAS,CAACY,eAAe,CAACF,OAAO,EAAErB,OAAO,EAAEC,MAAM,CAAC;IACrE,OAAO;MAAEY;IAAU,CAAC;EACtB;EAEA,IAAI,OAAOJ,GAAG,KAAK,QAAQ,IAAI,KAAK,IAAIA,GAAG,EAAE;IAC3C,MAAMe,MAAM,GAAGf,GAAqB;IACpC,MAAM;MAAEA,GAAG,EAAEgB,IAAI;MAAExB,MAAM;MAAE9B;IAAK,CAAC,GAAGqD,MAAM;IAE1C,IAAIC,IAAI,YAAYd,eAAS,EAAE;MAC7B,OAAO;QAAEE,SAAS,EAAEY;MAAK,CAAC;IAC5B;IAEA,IAAI,IAAAX,iBAAW,EAACW,IAAI,CAAC,EAAE;MACrB,OAAO;QAAEZ,SAAS,EAAGY,IAAI,CAAeZ;MAAU,CAAC;IACrD;IAEA,IAAI,CAAC,IAAAG,uBAAgB,EAACS,IAAI,CAAC,EAAE;MAC3B,MAAM,IAAIb,KAAK,CAAC,uBAAuB,CAAC;IAC1C;IAEA,MAAMK,KAAK,GACThB,MAAM,KAAK,KAAK,IACf,OAAOwB,IAAI,KAAK,QAAQ,IAAIA,IAAI,CAACP,QAAQ,CAAC,YAAY,CAAE;IAC3D,MAAMQ,OAAO,GAAGT,KAAK,GACjB1B,kBAAW,CAAC4B,GAAG,GACflB,MAAM,KAAK,KAAK,GACdV,kBAAW,CAACC,GAAG,GACf4B,SAAS;IAEf,IAAIO,KAA8B;IAClC,IAAIxD,IAAI,KAAK,OAAO,EAAEwD,KAAK,GAAGlC,kBAAW,CAACE,KAAK,CAAC,KAC3C,IAAIxB,IAAI,KAAK,OAAO,EAAEwD,KAAK,GAAGlC,kBAAW,CAACmC,KAAK,CAAC,KAChD,IAAIzD,IAAI,KAAK,MAAM,EAAEwD,KAAK,GAAGlC,kBAAW,CAACoC,IAAI,CAAC,KAC9C,IAAI1D,IAAI,KAAK,MAAM,EAAEwD,KAAK,GAAGlC,kBAAW,CAACC,IAAI;IAElD,MAAM2B,OAAO,GAAGX,QAAQ,GAAG,QAAQ,GAAG,SAAS;IAC/C,MAAMV,OAAO,GAAG,IAAAsB,8BAAI,EAACG,IAAI,CAAC;IAC1B,MAAMZ,SAAS,GAAGF,eAAS,CAACY,eAAe,CACzCF,OAAO,EACPrB,OAAO,EACP0B,OAAO,EACPC,KACF,CAAC;IACD,OAAO;MAAEd;IAAU,CAAC;EACtB;EAEA,MAAM,IAAID,KAAK,CAAC,mBAAmB,CAAC;AACtC;AAEA,SAASkB,iBAAiBA,CAACjB,SAAoB,EAAgB;EAC7D,MAAMQ,OAAO,GAAGR,SAAS,CAACkB,MAAM,CAACC,oBAAoB,CAAC,CAAC;EACvD,IAAI,CAAC9D,cAAc,CAACmD,OAAO,CAAC,EAAE;IAC5B,MAAM,IAAIT,KAAK,CACb,oDAAoDS,OAAO,EAC7D,CAAC;EACH;EACA,OAAOpD,eAAe,CAACoD,OAAO,CAAC;AACjC;AAEO,SAASlB,WAAWA,CACzBM,GAAa,EACbwB,QAAkE,EACxC;EAC1B,MAAMC,aAAa,GAAGA,CAAA,KAAyB;IAC7C,IAAIzB,GAAG,KAAK,IAAI,IAAIA,GAAG,KAAKW,SAAS,EAAE;MACrC,MAAM,IAAIR,KAAK,CAAC,0CAA0C,CAAC;IAC7D;IAEA,MAAM;MAAEC;IAAU,CAAC,GAAGL,UAAU,CAACC,GAAG,EAAE,IAAI,CAAC;IAC3C,MAAMxB,OAAO,GAAG6C,iBAAiB,CAACjB,SAAS,CAAC;IAC5C,MAAMsB,KAAK,GAAG,IAAIpD,KAAK,CAACE,OAAO,CAAC;IAEhC,MAAMe,OAAO,GAAGa,SAAS,CAACkB,MAAM,CAACK,SAAS,CACxC7C,kBAAW,CAACC,GAAG,EACfC,kBAAW,CAACC,IACd,CAAC;IACDyC,KAAK,CAACpC,YAAY,CAACC,OAAO,EAAET,kBAAW,CAACC,GAAG,EAAEC,kBAAW,CAACC,IAAI,CAAC;IAE9D,OAAOyC,KAAK,CAAC/B,eAAe,CAAC,CAAC;EAChC,CAAC;EAED,IAAI6B,QAAQ,EAAE;IACZ,IAAI;MACF,MAAMI,MAAM,GAAGH,aAAa,CAAC,CAAC;MAC9BI,OAAO,CAACC,QAAQ,CAACN,QAAQ,EAAE,IAAI,EAAEI,MAAM,CAAC;IAC1C,CAAC,CAAC,OAAOG,GAAG,EAAE;MACZF,OAAO,CAACC,QAAQ,CAACN,QAAQ,EAAEO,GAAY,CAAC;IAC1C;IACA;EACF;EAEA,OAAON,aAAa,CAAC,CAAC;AACxB;AAEO,SAAS7B,WAAWA,CACzBI,GAAa,EACb7B,UAAsB,EACtBqD,QAA4D,EACxC;EACpB,MAAMQ,aAAa,GAAGA,CAAA,KAAmB;IACvC,IAAIhC,GAAG,KAAK,IAAI,IAAIA,GAAG,KAAKW,SAAS,EAAE;MACrC,MAAM,IAAIR,KAAK,CAAC,2CAA2C,CAAC;IAC9D;IAEA,MAAM;MAAEC;IAAU,CAAC,GAAGL,UAAU,CAACC,GAAG,EAAE,KAAK,CAAC;IAC5C,MAAMxB,OAAO,GAAG6C,iBAAiB,CAACjB,SAAS,CAAC;IAC5C,MAAMsB,KAAK,GAAG,IAAIpD,KAAK,CAACE,OAAO,CAAC;IAEhC,MAAMe,OAAO,GAAGa,SAAS,CAACkB,MAAM,CAACK,SAAS,CACxC7C,kBAAW,CAACC,GAAG,EACfC,kBAAW,CAACE,KACd,CAAC;IACDwC,KAAK,CAACjC,aAAa,CAACF,OAAO,EAAET,kBAAW,CAACC,GAAG,EAAEC,kBAAW,CAACE,KAAK,CAAC;IAEhE,MAAM+C,gBAAgB,GAAG,IAAApB,8BAAI,EAAC1C,UAAU,CAAgB;IACxD,OAAOuD,KAAK,CAAC7B,eAAe,CAACoC,gBAAgB,CAAC;EAChD,CAAC;EAED,IAAIT,QAAQ,EAAE;IACZ,IAAI;MACF,MAAMI,MAAM,GAAGI,aAAa,CAAC,CAAC;MAC9BH,OAAO,CAACC,QAAQ,CAACN,QAAQ,EAAE,IAAI,EAAEI,MAAM,CAAC;IAC1C,CAAC,CAAC,OAAOG,GAAG,EAAE;MACZF,OAAO,CAACC,QAAQ,CAACN,QAAQ,EAAEO,GAAY,CAAC;IAC1C;IACA;EACF;EAEA,OAAOC,aAAa,CAAC,CAAC;AACxB;AAEO,eAAeE,8BAA8BA,CAClD1D,OAAqB,EACrB2D,WAAoB,EACpBC,SAAqB,EACG;EACxB,IACE,IAAAC,kBAAW,EAACD,SAAS,EAAE,CACrB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,CACjB,CAAC,EACF;IACA,MAAM,IAAAE,uBAAgB,EACpB,6BAA6B9D,OAAO,EAAE,EACtC,aACF,CAAC;EACH;EAEA,MAAM+D,YAAY,GAAG,IAAAC,qBAAc,EACjCJ,SAAS,EACT,iBAAiB,EACjB,gBACF,CAAC;EACD,MAAMK,aAAa,GAAG,IAAAD,qBAAc,EAClCJ,SAAS,EACT,iBAAiB,EACjB,gBACF,CAAC;EAED,IAAIK,aAAa,CAACC,MAAM,KAAK,CAAC,EAAE;IAC9B,MAAM,IAAAJ,uBAAgB,EAAC,wBAAwB,EAAE,aAAa,CAAC;EACjE;EAEA,MAAMZ,KAAK,GAAG,IAAIpD,KAAK,CAACE,OAAO,CAAC;EAChC,MAAMkD,KAAK,CAAC7C,eAAe,CAAC,CAAC;EAE7B,MAAM8D,aAAa,GAAGjB,KAAK,CAACtC,YAAY,CAAC,CAAC;EAC1C,MAAMwD,cAAc,GAAGlB,KAAK,CAACrC,aAAa,CAAC,CAAC;EAE5C,MAAMwD,GAAG,GAAG3C,eAAS,CAACY,eAAe,CACnC,QAAQ,EACR6B,aAAa,EACb7D,kBAAW,CAACC,GAAG,EACfC,kBAAW,CAACC,IACd,CAAoB;EACpB,MAAM6D,SAAS,GAAG,IAAIC,eAAS,CAC7BF,GAAG,EACH;IAAEG,IAAI,EAAExE;EAAQ,CAAC,EACjB+D,YAAY,EACZ,IACF,CAAC;EAED,MAAMU,IAAI,GAAG/C,eAAS,CAACY,eAAe,CACpC,SAAS,EACT8B,cAAc,EACd9D,kBAAW,CAACC,GAAG,EACfC,kBAAW,CAACE,KACd,CAAqB;EACrB,MAAMgE,UAAU,GAAG,IAAIH,eAAS,CAC9BE,IAAI,EACJ;IAAED,IAAI,EAAExE;EAAQ,CAAC,EACjBiE,aAAa,EACbN,WACF,CAAC;EAED,OAAO;IAAEW,SAAS;IAAEI;EAAW,CAAC;AAClC","ignoreList":[]}
1
+ {"version":3,"names":["_reactNativeNitroModules","require","_keys","_utils","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","ML_KEM_VARIANTS","isMlKemKeyType","type","unpackEncapsulateResult","packed","view","DataView","ciphertextLen","getUint32","sharedKeyLen","headerSize","ciphertext","slice","sharedKey","MlKem","constructor","variant","native","NitroModules","createHybridObject","setVariant","generateKeyPair","KFormatType","DER","KeyEncoding","SPKI","PKCS8","generateKeyPairSync","getPublicKey","getPrivateKey","setPublicKey","keyData","format","setPrivateKey","encapsulate","encapsulateSync","decapsulate","decapsulateSync","exports","prepareKey","key","isPublic","KeyObject","Error","keyObject","isCryptoKey","cryptoKey","isStringOrBuffer","isPem","includes","PEM","undefined","keyType","toAB","createKeyObject","keyObj","data","kFormat","kType","PKCS1","SEC1","getVariantFromKey","handle","getAsymmetricKeyType","callback","doEncapsulate","mlkem","exportKey","result","process","nextTick","err","doDecapsulate","ciphertextBuffer","mlkem_generateKeyPairWebCrypto","extractable","keyUsages","hasAnyNotIn","lazyDOMException","publicUsages","getUsagesUnion","privateUsages","length","publicKeyData","privateKeyData","pub","publicKey","CryptoKey","name","priv","privateKey"],"sources":["mlkem.ts"],"sourcesContent":["import { NitroModules } from 'react-native-nitro-modules';\r\nimport type { MlKemKeyPair } from './specs/v1/mlKemKeyPair.nitro';\r\nimport {\r\n CryptoKey,\r\n KeyObject,\r\n PublicKeyObject,\r\n PrivateKeyObject,\r\n isCryptoKey,\r\n} from './keys';\r\nimport type {\r\n CryptoKeyPair,\r\n KeyUsage,\r\n SubtleAlgorithm,\r\n EncapsulateResult,\r\n BinaryLike,\r\n} from './utils';\r\nimport {\r\n hasAnyNotIn,\r\n lazyDOMException,\r\n getUsagesUnion,\r\n KFormatType,\r\n KeyEncoding,\r\n isStringOrBuffer,\r\n binaryLikeToArrayBuffer as toAB,\r\n} from './utils';\r\n\r\nexport type MlKemVariant = 'ML-KEM-512' | 'ML-KEM-768' | 'ML-KEM-1024';\r\n\r\ntype MlKemKeyType = 'ml-kem-512' | 'ml-kem-768' | 'ml-kem-1024';\r\n\r\ntype KeyInput = BinaryLike | KeyObject | CryptoKey | KeyInputObject;\r\n\r\nexport interface KeyInputObject {\r\n key: BinaryLike | KeyObject | CryptoKey;\r\n format?: 'pem' | 'der';\r\n type?: 'pkcs1' | 'pkcs8' | 'spki' | 'sec1';\r\n}\r\n\r\nconst ML_KEM_VARIANTS: Record<MlKemKeyType, MlKemVariant> = {\r\n 'ml-kem-512': 'ML-KEM-512',\r\n 'ml-kem-768': 'ML-KEM-768',\r\n 'ml-kem-1024': 'ML-KEM-1024',\r\n};\r\n\r\nfunction isMlKemKeyType(type: string): type is MlKemKeyType {\r\n return type in ML_KEM_VARIANTS;\r\n}\r\n\r\nfunction unpackEncapsulateResult(packed: ArrayBuffer): EncapsulateResult {\r\n const view = new DataView(packed);\r\n const ciphertextLen = view.getUint32(0, true);\r\n const sharedKeyLen = view.getUint32(4, true);\r\n const headerSize = 8;\r\n const ciphertext = packed.slice(headerSize, headerSize + ciphertextLen);\r\n const sharedKey = packed.slice(\r\n headerSize + ciphertextLen,\r\n headerSize + ciphertextLen + sharedKeyLen,\r\n );\r\n return { ciphertext, sharedKey };\r\n}\r\n\r\nexport class MlKem {\r\n variant: MlKemVariant;\r\n native: MlKemKeyPair;\r\n\r\n constructor(variant: MlKemVariant) {\r\n this.variant = variant;\r\n this.native = NitroModules.createHybridObject<MlKemKeyPair>('MlKemKeyPair');\r\n this.native.setVariant(variant);\r\n }\r\n\r\n async generateKeyPair(): Promise<void> {\r\n await this.native.generateKeyPair(\r\n KFormatType.DER,\r\n KeyEncoding.SPKI,\r\n KFormatType.DER,\r\n KeyEncoding.PKCS8,\r\n );\r\n }\r\n\r\n generateKeyPairSync(): void {\r\n this.native.generateKeyPairSync(\r\n KFormatType.DER,\r\n KeyEncoding.SPKI,\r\n KFormatType.DER,\r\n KeyEncoding.PKCS8,\r\n );\r\n }\r\n\r\n getPublicKey(): ArrayBuffer {\r\n return this.native.getPublicKey();\r\n }\r\n\r\n getPrivateKey(): ArrayBuffer {\r\n return this.native.getPrivateKey();\r\n }\r\n\r\n setPublicKey(keyData: ArrayBuffer, format: number, type: number): void {\r\n this.native.setPublicKey(keyData, format, type);\r\n }\r\n\r\n setPrivateKey(keyData: ArrayBuffer, format: number, type: number): void {\r\n this.native.setPrivateKey(keyData, format, type);\r\n }\r\n\r\n async encapsulate(): Promise<EncapsulateResult> {\r\n const packed = await this.native.encapsulate();\r\n return unpackEncapsulateResult(packed);\r\n }\r\n\r\n encapsulateSync(): EncapsulateResult {\r\n const packed = this.native.encapsulateSync();\r\n return unpackEncapsulateResult(packed);\r\n }\r\n\r\n async decapsulate(ciphertext: ArrayBuffer): Promise<ArrayBuffer> {\r\n return this.native.decapsulate(ciphertext);\r\n }\r\n\r\n decapsulateSync(ciphertext: ArrayBuffer): ArrayBuffer {\r\n return this.native.decapsulateSync(ciphertext);\r\n }\r\n}\r\n\r\nfunction prepareKey(\r\n key: KeyInput,\r\n isPublic: boolean,\r\n): { keyObject: KeyObject } {\r\n if (key instanceof KeyObject) {\r\n if (isPublic) {\r\n if (key.type === 'secret') {\r\n throw new Error('Cannot use secret key for encapsulation');\r\n }\r\n } else {\r\n if (key.type !== 'private') {\r\n throw new Error('Key must be a private key for decapsulation');\r\n }\r\n }\r\n return { keyObject: key };\r\n }\r\n\r\n if (isCryptoKey(key)) {\r\n const cryptoKey = key as CryptoKey;\r\n return prepareKey(cryptoKey.keyObject, isPublic);\r\n }\r\n\r\n if (isStringOrBuffer(key)) {\r\n const isPem = typeof key === 'string' && key.includes('-----BEGIN');\r\n const format = isPem ? KFormatType.PEM : undefined;\r\n const keyType = isPublic ? 'public' : 'private';\r\n const keyData = toAB(key);\r\n const keyObject = KeyObject.createKeyObject(keyType, keyData, format);\r\n return { keyObject };\r\n }\r\n\r\n if (typeof key === 'object' && 'key' in key) {\r\n const keyObj = key as KeyInputObject;\r\n const { key: data, format, type } = keyObj;\r\n\r\n if (data instanceof KeyObject) {\r\n return { keyObject: data };\r\n }\r\n\r\n if (isCryptoKey(data)) {\r\n return { keyObject: (data as CryptoKey).keyObject };\r\n }\r\n\r\n if (!isStringOrBuffer(data)) {\r\n throw new Error('Invalid key data type');\r\n }\r\n\r\n const isPem =\r\n format === 'pem' ||\r\n (typeof data === 'string' && data.includes('-----BEGIN'));\r\n const kFormat = isPem\r\n ? KFormatType.PEM\r\n : format === 'der'\r\n ? KFormatType.DER\r\n : undefined;\r\n\r\n let kType: KeyEncoding | undefined;\r\n if (type === 'pkcs8') kType = KeyEncoding.PKCS8;\r\n else if (type === 'pkcs1') kType = KeyEncoding.PKCS1;\r\n else if (type === 'sec1') kType = KeyEncoding.SEC1;\r\n else if (type === 'spki') kType = KeyEncoding.SPKI;\r\n\r\n const keyType = isPublic ? 'public' : 'private';\r\n const keyData = toAB(data);\r\n const keyObject = KeyObject.createKeyObject(\r\n keyType,\r\n keyData,\r\n kFormat,\r\n kType,\r\n );\r\n return { keyObject };\r\n }\r\n\r\n throw new Error('Invalid key input');\r\n}\r\n\r\nfunction getVariantFromKey(keyObject: KeyObject): MlKemVariant {\r\n const keyType = keyObject.handle.getAsymmetricKeyType();\r\n if (!isMlKemKeyType(keyType)) {\r\n throw new Error(\r\n `Key is not an ML-KEM key. Got asymmetricKeyType: ${keyType}`,\r\n );\r\n }\r\n return ML_KEM_VARIANTS[keyType];\r\n}\r\n\r\nexport function encapsulate(\r\n key: KeyInput,\r\n callback?: (err: Error | null, result?: EncapsulateResult) => void,\r\n): EncapsulateResult | void {\r\n const doEncapsulate = (): EncapsulateResult => {\r\n if (key === null || key === undefined) {\r\n throw new Error('Public key is required for encapsulation');\r\n }\r\n\r\n const { keyObject } = prepareKey(key, true);\r\n const variant = getVariantFromKey(keyObject);\r\n const mlkem = new MlKem(variant);\r\n\r\n const keyData = keyObject.handle.exportKey(\r\n KFormatType.DER,\r\n KeyEncoding.SPKI,\r\n );\r\n mlkem.setPublicKey(keyData, KFormatType.DER, KeyEncoding.SPKI);\r\n\r\n return mlkem.encapsulateSync();\r\n };\r\n\r\n if (callback) {\r\n try {\r\n const result = doEncapsulate();\r\n process.nextTick(callback, null, result);\r\n } catch (err) {\r\n process.nextTick(callback, err as Error);\r\n }\r\n return;\r\n }\r\n\r\n return doEncapsulate();\r\n}\r\n\r\nexport function decapsulate(\r\n key: KeyInput,\r\n ciphertext: BinaryLike,\r\n callback?: (err: Error | null, result?: ArrayBuffer) => void,\r\n): ArrayBuffer | void {\r\n const doDecapsulate = (): ArrayBuffer => {\r\n if (key === null || key === undefined) {\r\n throw new Error('Private key is required for decapsulation');\r\n }\r\n\r\n const { keyObject } = prepareKey(key, false);\r\n const variant = getVariantFromKey(keyObject);\r\n const mlkem = new MlKem(variant);\r\n\r\n const keyData = keyObject.handle.exportKey(\r\n KFormatType.DER,\r\n KeyEncoding.PKCS8,\r\n );\r\n mlkem.setPrivateKey(keyData, KFormatType.DER, KeyEncoding.PKCS8);\r\n\r\n const ciphertextBuffer = toAB(ciphertext) as ArrayBuffer;\r\n return mlkem.decapsulateSync(ciphertextBuffer);\r\n };\r\n\r\n if (callback) {\r\n try {\r\n const result = doDecapsulate();\r\n process.nextTick(callback, null, result);\r\n } catch (err) {\r\n process.nextTick(callback, err as Error);\r\n }\r\n return;\r\n }\r\n\r\n return doDecapsulate();\r\n}\r\n\r\nexport async function mlkem_generateKeyPairWebCrypto(\r\n variant: MlKemVariant,\r\n extractable: boolean,\r\n keyUsages: KeyUsage[],\r\n): Promise<CryptoKeyPair> {\r\n if (\r\n hasAnyNotIn(keyUsages, [\r\n 'encapsulateBits',\r\n 'encapsulateKey',\r\n 'decapsulateBits',\r\n 'decapsulateKey',\r\n ])\r\n ) {\r\n throw lazyDOMException(\r\n `Unsupported key usage for ${variant}`,\r\n 'SyntaxError',\r\n );\r\n }\r\n\r\n const publicUsages = getUsagesUnion(\r\n keyUsages,\r\n 'encapsulateBits',\r\n 'encapsulateKey',\r\n );\r\n const privateUsages = getUsagesUnion(\r\n keyUsages,\r\n 'decapsulateBits',\r\n 'decapsulateKey',\r\n );\r\n\r\n if (privateUsages.length === 0) {\r\n throw lazyDOMException('Usages cannot be empty', 'SyntaxError');\r\n }\r\n\r\n const mlkem = new MlKem(variant);\r\n await mlkem.generateKeyPair();\r\n\r\n const publicKeyData = mlkem.getPublicKey();\r\n const privateKeyData = mlkem.getPrivateKey();\r\n\r\n const pub = KeyObject.createKeyObject(\r\n 'public',\r\n publicKeyData,\r\n KFormatType.DER,\r\n KeyEncoding.SPKI,\r\n ) as PublicKeyObject;\r\n const publicKey = new CryptoKey(\r\n pub,\r\n { name: variant } as SubtleAlgorithm,\r\n publicUsages,\r\n true,\r\n );\r\n\r\n const priv = KeyObject.createKeyObject(\r\n 'private',\r\n privateKeyData,\r\n KFormatType.DER,\r\n KeyEncoding.PKCS8,\r\n ) as PrivateKeyObject;\r\n const privateKey = new CryptoKey(\r\n priv,\r\n { name: variant } as SubtleAlgorithm,\r\n privateUsages,\r\n extractable,\r\n );\r\n\r\n return { publicKey, privateKey };\r\n}\r\n"],"mappings":"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","ignoreList":[]}
@@ -13,7 +13,7 @@ var _classes = require("./keys/classes");
13
13
  var _utils = require("./utils");
14
14
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
15
15
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
16
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
16
+ function _toPrimitive(t, e) { if ("object" != typeof t || !t) return t; var r; if ("undefined" != typeof Symbol && void 0 !== (r = t[Symbol.toPrimitive])) { var i = r.call(t, e || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === e ? String : Number)(t); }
17
17
  class Rsa {
18
18
  constructor(modulusLength, publicExponent, hashAlgorithm) {
19
19
  _defineProperty(this, "native", void 0);
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNativeNitroModules","require","_reactNativeBuffer","_classes","_utils","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","Rsa","constructor","modulusLength","publicExponent","hashAlgorithm","native","NitroModules","createHybridObject","setModulusLength","setPublicExponent","buffer","slice","byteOffset","byteLength","setHashAlgorithm","generateKeyPair","publicKey","getPublicKey","privateKey","getPrivateKey","generateKeyPairSync","exports","rsa_generateKeyPair","algorithm","extractable","keyUsages","name","hash","lazyDOMException","length","hashName","normalizedHash","normalizeHashName","hasAnyNotIn","publicUsages","privateUsages","getUsagesUnion","rsa","keyAlgorithm","publicKeyData","pub","KeyObject","createKeyObject","CryptoKey","privateKeyData","priv","rsa_prepareKeyGenParams","_type","options","Error","pubExp","pubExpBytes","Uint8Array","rsa_formatKeyPairOutput","encoding","publicFormat","publicType","privateFormat","privateType","cipher","passphrase","format","KFormatType","PEM","DER","keyEncoding","KeyEncoding","SPKI","PKCS1","exported","handle","exportKey","Buffer","from","toString","PKCS8","rsa_generateKeyPairNode","type","rsa_generateKeyPairNodeSync"],"sources":["rsa.ts"],"sourcesContent":["import { NitroModules } from 'react-native-nitro-modules';\r\nimport { Buffer } from '@craftzdog/react-native-buffer';\r\nimport {\r\n CryptoKey,\r\n KeyObject,\r\n PrivateKeyObject,\r\n PublicKeyObject,\r\n} from './keys/classes';\r\nimport {\r\n getUsagesUnion,\r\n hasAnyNotIn,\r\n lazyDOMException,\r\n normalizeHashName,\r\n KFormatType,\r\n KeyEncoding,\r\n} from './utils';\r\nimport type {\r\n CryptoKeyPair,\r\n KeyUsage,\r\n RsaHashedKeyGenParams,\r\n SubtleAlgorithm,\r\n GenerateKeyPairOptions,\r\n KeyPairGenConfig,\r\n} from './utils';\r\nimport type { RsaKeyPair } from './specs/v1/rsaKeyPair.nitro';\r\n\r\nexport class Rsa {\r\n native: RsaKeyPair;\r\n\r\n constructor(\r\n modulusLength: number,\r\n publicExponent: Uint8Array,\r\n hashAlgorithm: string,\r\n ) {\r\n this.native = NitroModules.createHybridObject<RsaKeyPair>('RsaKeyPair');\r\n this.native.setModulusLength(modulusLength);\r\n this.native.setPublicExponent(\r\n publicExponent.buffer.slice(\r\n publicExponent.byteOffset,\r\n publicExponent.byteOffset + publicExponent.byteLength,\r\n ) as ArrayBuffer,\r\n );\r\n this.native.setHashAlgorithm(hashAlgorithm);\r\n }\r\n\r\n async generateKeyPair(): Promise<CryptoKeyPair> {\r\n await this.native.generateKeyPair();\r\n return {\r\n publicKey: this.native.getPublicKey(),\r\n privateKey: this.native.getPrivateKey(),\r\n };\r\n }\r\n\r\n generateKeyPairSync(): CryptoKeyPair {\r\n this.native.generateKeyPairSync();\r\n return {\r\n publicKey: this.native.getPublicKey(),\r\n privateKey: this.native.getPrivateKey(),\r\n };\r\n }\r\n}\r\n\r\n// Node API\r\nexport async function rsa_generateKeyPair(\r\n algorithm: SubtleAlgorithm,\r\n extractable: boolean,\r\n keyUsages: KeyUsage[],\r\n): Promise<CryptoKeyPair> {\r\n const { name, modulusLength, publicExponent, hash } =\r\n algorithm as RsaHashedKeyGenParams;\r\n\r\n // Validate parameters first\r\n if (!modulusLength || modulusLength < 256) {\r\n throw lazyDOMException('Invalid key length', 'OperationError');\r\n }\r\n\r\n if (!publicExponent || publicExponent.length === 0) {\r\n throw lazyDOMException('Invalid public exponent', 'OperationError');\r\n }\r\n\r\n // Validate hash algorithm using existing validation function\r\n let hashName: string;\r\n try {\r\n const normalizedHash = normalizeHashName(hash);\r\n hashName = typeof hash === 'string' ? hash : hash?.name || normalizedHash;\r\n } catch {\r\n throw lazyDOMException('Invalid Hash Algorithm', 'NotSupportedError');\r\n }\r\n\r\n // Validate usages are not empty\r\n if (keyUsages.length === 0) {\r\n throw lazyDOMException('Usages cannot be empty', 'SyntaxError');\r\n }\r\n\r\n // Usage validation based on algorithm type\r\n switch (name) {\r\n case 'RSASSA-PKCS1-v1_5':\r\n if (hasAnyNotIn(keyUsages, ['sign', 'verify'])) {\r\n throw lazyDOMException(\r\n `Unsupported key usage for a ${name} key`,\r\n 'SyntaxError',\r\n );\r\n }\r\n break;\r\n case 'RSA-PSS':\r\n if (hasAnyNotIn(keyUsages, ['sign', 'verify'])) {\r\n throw lazyDOMException(\r\n `Unsupported key usage for a ${name} key`,\r\n 'SyntaxError',\r\n );\r\n }\r\n break;\r\n case 'RSA-OAEP':\r\n if (\r\n hasAnyNotIn(keyUsages, ['encrypt', 'decrypt', 'wrapKey', 'unwrapKey'])\r\n ) {\r\n throw lazyDOMException(\r\n `Unsupported key usage for a ${name} key`,\r\n 'SyntaxError',\r\n );\r\n }\r\n break;\r\n default:\r\n throw lazyDOMException(\r\n 'The algorithm is not supported',\r\n 'NotSupportedError',\r\n );\r\n }\r\n\r\n // Split usages between public and private keys\r\n let publicUsages: KeyUsage[] = [];\r\n let privateUsages: KeyUsage[] = [];\r\n switch (name) {\r\n case 'RSASSA-PKCS1-v1_5':\r\n case 'RSA-PSS':\r\n publicUsages = getUsagesUnion(keyUsages, 'verify');\r\n privateUsages = getUsagesUnion(keyUsages, 'sign');\r\n break;\r\n case 'RSA-OAEP':\r\n publicUsages = getUsagesUnion(keyUsages, 'encrypt', 'wrapKey');\r\n privateUsages = getUsagesUnion(keyUsages, 'decrypt', 'unwrapKey');\r\n break;\r\n }\r\n\r\n // Validate that private key has usages for CryptoKeyPair\r\n if (privateUsages.length === 0) {\r\n throw lazyDOMException('Usages cannot be empty', 'SyntaxError');\r\n }\r\n\r\n const rsa = new Rsa(modulusLength, publicExponent, hashName);\r\n await rsa.generateKeyPair();\r\n\r\n const keyAlgorithm = {\r\n name,\r\n modulusLength,\r\n publicExponent,\r\n hash: { name: hashName },\r\n };\r\n\r\n // Create KeyObject instances using the standard createKeyObject method\r\n const publicKeyData = rsa.native.getPublicKey();\r\n const pub = KeyObject.createKeyObject(\r\n 'public',\r\n publicKeyData,\r\n ) as PublicKeyObject;\r\n const publicKey = new CryptoKey(pub, keyAlgorithm, publicUsages, true);\r\n\r\n const privateKeyData = rsa.native.getPrivateKey();\r\n const priv = KeyObject.createKeyObject(\r\n 'private',\r\n privateKeyData,\r\n ) as PrivateKeyObject;\r\n const privateKey = new CryptoKey(\r\n priv,\r\n keyAlgorithm,\r\n privateUsages,\r\n extractable,\r\n );\r\n\r\n return { publicKey, privateKey };\r\n}\r\n\r\nfunction rsa_prepareKeyGenParams(\r\n _type: 'rsa' | 'rsa-pss',\r\n options: GenerateKeyPairOptions | undefined,\r\n): Rsa {\r\n if (!options) {\r\n throw new Error('Options are required for RSA key generation');\r\n }\r\n\r\n const {\r\n modulusLength,\r\n publicExponent,\r\n hash = 'sha256',\r\n } = options as {\r\n modulusLength?: number;\r\n publicExponent?: number;\r\n hash?: string;\r\n };\r\n\r\n if (!modulusLength || modulusLength < 256) {\r\n throw new Error('Invalid modulus length');\r\n }\r\n\r\n const pubExp = publicExponent || 65537;\r\n const pubExpBytes = new Uint8Array([\r\n (pubExp >> 16) & 0xff,\r\n (pubExp >> 8) & 0xff,\r\n pubExp & 0xff,\r\n ]);\r\n\r\n const hashName = typeof hash === 'string' ? hash : hash;\r\n\r\n return new Rsa(modulusLength, pubExpBytes, hashName);\r\n}\r\n\r\nfunction rsa_formatKeyPairOutput(\r\n rsa: Rsa,\r\n encoding: KeyPairGenConfig,\r\n): {\r\n publicKey: PublicKeyObject | Buffer | string | ArrayBuffer;\r\n privateKey: PrivateKeyObject | Buffer | string | ArrayBuffer;\r\n} {\r\n const {\r\n publicFormat,\r\n publicType,\r\n privateFormat,\r\n privateType,\r\n cipher,\r\n passphrase,\r\n } = encoding;\r\n\r\n const publicKeyData = rsa.native.getPublicKey();\r\n const privateKeyData = rsa.native.getPrivateKey();\r\n\r\n const pub = KeyObject.createKeyObject(\r\n 'public',\r\n publicKeyData,\r\n ) as PublicKeyObject;\r\n\r\n const priv = KeyObject.createKeyObject(\r\n 'private',\r\n privateKeyData,\r\n ) as PrivateKeyObject;\r\n\r\n let publicKey: PublicKeyObject | Buffer | string | ArrayBuffer;\r\n let privateKey: PrivateKeyObject | Buffer | string | ArrayBuffer;\r\n\r\n if (publicFormat === -1) {\r\n publicKey = pub;\r\n } else {\r\n const format =\r\n publicFormat === KFormatType.PEM ? KFormatType.PEM : KFormatType.DER;\r\n const keyEncoding =\r\n publicType === KeyEncoding.SPKI ? KeyEncoding.SPKI : KeyEncoding.PKCS1;\r\n const exported = pub.handle.exportKey(format, keyEncoding);\r\n if (format === KFormatType.PEM) {\r\n publicKey = Buffer.from(new Uint8Array(exported)).toString('utf-8');\r\n } else {\r\n publicKey = exported;\r\n }\r\n }\r\n\r\n if (privateFormat === -1) {\r\n privateKey = priv;\r\n } else {\r\n const format =\r\n privateFormat === KFormatType.PEM ? KFormatType.PEM : KFormatType.DER;\r\n const keyEncoding =\r\n privateType === KeyEncoding.PKCS8 ? KeyEncoding.PKCS8 : KeyEncoding.PKCS1;\r\n const exported = priv.handle.exportKey(\r\n format,\r\n keyEncoding,\r\n cipher,\r\n passphrase,\r\n );\r\n if (format === KFormatType.PEM) {\r\n privateKey = Buffer.from(new Uint8Array(exported)).toString('utf-8');\r\n } else {\r\n privateKey = exported;\r\n }\r\n }\r\n\r\n return { publicKey, privateKey };\r\n}\r\n\r\nexport async function rsa_generateKeyPairNode(\r\n type: 'rsa' | 'rsa-pss',\r\n options: GenerateKeyPairOptions | undefined,\r\n encoding: KeyPairGenConfig,\r\n): Promise<{\r\n publicKey: PublicKeyObject | Buffer | string | ArrayBuffer;\r\n privateKey: PrivateKeyObject | Buffer | string | ArrayBuffer;\r\n}> {\r\n const rsa = rsa_prepareKeyGenParams(type, options);\r\n await rsa.generateKeyPair();\r\n return rsa_formatKeyPairOutput(rsa, encoding);\r\n}\r\n\r\nexport function rsa_generateKeyPairNodeSync(\r\n type: 'rsa' | 'rsa-pss',\r\n options: GenerateKeyPairOptions | undefined,\r\n encoding: KeyPairGenConfig,\r\n): {\r\n publicKey: PublicKeyObject | Buffer | string | ArrayBuffer;\r\n privateKey: PrivateKeyObject | Buffer | string | ArrayBuffer;\r\n} {\r\n const rsa = rsa_prepareKeyGenParams(type, options);\r\n rsa.generateKeyPairSync();\r\n return rsa_formatKeyPairOutput(rsa, encoding);\r\n}\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNativeNitroModules","require","_reactNativeBuffer","_classes","_utils","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","Rsa","constructor","modulusLength","publicExponent","hashAlgorithm","native","NitroModules","createHybridObject","setModulusLength","setPublicExponent","buffer","slice","byteOffset","byteLength","setHashAlgorithm","generateKeyPair","publicKey","getPublicKey","privateKey","getPrivateKey","generateKeyPairSync","exports","rsa_generateKeyPair","algorithm","extractable","keyUsages","name","hash","lazyDOMException","length","hashName","normalizedHash","normalizeHashName","hasAnyNotIn","publicUsages","privateUsages","getUsagesUnion","rsa","keyAlgorithm","publicKeyData","pub","KeyObject","createKeyObject","CryptoKey","privateKeyData","priv","rsa_prepareKeyGenParams","_type","options","Error","pubExp","pubExpBytes","Uint8Array","rsa_formatKeyPairOutput","encoding","publicFormat","publicType","privateFormat","privateType","cipher","passphrase","format","KFormatType","PEM","DER","keyEncoding","KeyEncoding","SPKI","PKCS1","exported","handle","exportKey","Buffer","from","toString","PKCS8","rsa_generateKeyPairNode","type","rsa_generateKeyPairNodeSync"],"sources":["rsa.ts"],"sourcesContent":["import { NitroModules } from 'react-native-nitro-modules';\r\nimport { Buffer } from '@craftzdog/react-native-buffer';\r\nimport {\r\n CryptoKey,\r\n KeyObject,\r\n PrivateKeyObject,\r\n PublicKeyObject,\r\n} from './keys/classes';\r\nimport {\r\n getUsagesUnion,\r\n hasAnyNotIn,\r\n lazyDOMException,\r\n normalizeHashName,\r\n KFormatType,\r\n KeyEncoding,\r\n} from './utils';\r\nimport type {\r\n CryptoKeyPair,\r\n KeyUsage,\r\n RsaHashedKeyGenParams,\r\n SubtleAlgorithm,\r\n GenerateKeyPairOptions,\r\n KeyPairGenConfig,\r\n} from './utils';\r\nimport type { RsaKeyPair } from './specs/v1/rsaKeyPair.nitro';\r\n\r\nexport class Rsa {\r\n native: RsaKeyPair;\r\n\r\n constructor(\r\n modulusLength: number,\r\n publicExponent: Uint8Array,\r\n hashAlgorithm: string,\r\n ) {\r\n this.native = NitroModules.createHybridObject<RsaKeyPair>('RsaKeyPair');\r\n this.native.setModulusLength(modulusLength);\r\n this.native.setPublicExponent(\r\n publicExponent.buffer.slice(\r\n publicExponent.byteOffset,\r\n publicExponent.byteOffset + publicExponent.byteLength,\r\n ) as ArrayBuffer,\r\n );\r\n this.native.setHashAlgorithm(hashAlgorithm);\r\n }\r\n\r\n async generateKeyPair(): Promise<CryptoKeyPair> {\r\n await this.native.generateKeyPair();\r\n return {\r\n publicKey: this.native.getPublicKey(),\r\n privateKey: this.native.getPrivateKey(),\r\n };\r\n }\r\n\r\n generateKeyPairSync(): CryptoKeyPair {\r\n this.native.generateKeyPairSync();\r\n return {\r\n publicKey: this.native.getPublicKey(),\r\n privateKey: this.native.getPrivateKey(),\r\n };\r\n }\r\n}\r\n\r\n// Node API\r\nexport async function rsa_generateKeyPair(\r\n algorithm: SubtleAlgorithm,\r\n extractable: boolean,\r\n keyUsages: KeyUsage[],\r\n): Promise<CryptoKeyPair> {\r\n const { name, modulusLength, publicExponent, hash } =\r\n algorithm as RsaHashedKeyGenParams;\r\n\r\n // Validate parameters first\r\n if (!modulusLength || modulusLength < 256) {\r\n throw lazyDOMException('Invalid key length', 'OperationError');\r\n }\r\n\r\n if (!publicExponent || publicExponent.length === 0) {\r\n throw lazyDOMException('Invalid public exponent', 'OperationError');\r\n }\r\n\r\n // Validate hash algorithm using existing validation function\r\n let hashName: string;\r\n try {\r\n const normalizedHash = normalizeHashName(hash);\r\n hashName = typeof hash === 'string' ? hash : hash?.name || normalizedHash;\r\n } catch {\r\n throw lazyDOMException('Invalid Hash Algorithm', 'NotSupportedError');\r\n }\r\n\r\n // Validate usages are not empty\r\n if (keyUsages.length === 0) {\r\n throw lazyDOMException('Usages cannot be empty', 'SyntaxError');\r\n }\r\n\r\n // Usage validation based on algorithm type\r\n switch (name) {\r\n case 'RSASSA-PKCS1-v1_5':\r\n if (hasAnyNotIn(keyUsages, ['sign', 'verify'])) {\r\n throw lazyDOMException(\r\n `Unsupported key usage for a ${name} key`,\r\n 'SyntaxError',\r\n );\r\n }\r\n break;\r\n case 'RSA-PSS':\r\n if (hasAnyNotIn(keyUsages, ['sign', 'verify'])) {\r\n throw lazyDOMException(\r\n `Unsupported key usage for a ${name} key`,\r\n 'SyntaxError',\r\n );\r\n }\r\n break;\r\n case 'RSA-OAEP':\r\n if (\r\n hasAnyNotIn(keyUsages, ['encrypt', 'decrypt', 'wrapKey', 'unwrapKey'])\r\n ) {\r\n throw lazyDOMException(\r\n `Unsupported key usage for a ${name} key`,\r\n 'SyntaxError',\r\n );\r\n }\r\n break;\r\n default:\r\n throw lazyDOMException(\r\n 'The algorithm is not supported',\r\n 'NotSupportedError',\r\n );\r\n }\r\n\r\n // Split usages between public and private keys\r\n let publicUsages: KeyUsage[] = [];\r\n let privateUsages: KeyUsage[] = [];\r\n switch (name) {\r\n case 'RSASSA-PKCS1-v1_5':\r\n case 'RSA-PSS':\r\n publicUsages = getUsagesUnion(keyUsages, 'verify');\r\n privateUsages = getUsagesUnion(keyUsages, 'sign');\r\n break;\r\n case 'RSA-OAEP':\r\n publicUsages = getUsagesUnion(keyUsages, 'encrypt', 'wrapKey');\r\n privateUsages = getUsagesUnion(keyUsages, 'decrypt', 'unwrapKey');\r\n break;\r\n }\r\n\r\n // Validate that private key has usages for CryptoKeyPair\r\n if (privateUsages.length === 0) {\r\n throw lazyDOMException('Usages cannot be empty', 'SyntaxError');\r\n }\r\n\r\n const rsa = new Rsa(modulusLength, publicExponent, hashName);\r\n await rsa.generateKeyPair();\r\n\r\n const keyAlgorithm = {\r\n name,\r\n modulusLength,\r\n publicExponent,\r\n hash: { name: hashName },\r\n };\r\n\r\n // Create KeyObject instances using the standard createKeyObject method\r\n const publicKeyData = rsa.native.getPublicKey();\r\n const pub = KeyObject.createKeyObject(\r\n 'public',\r\n publicKeyData,\r\n ) as PublicKeyObject;\r\n const publicKey = new CryptoKey(pub, keyAlgorithm, publicUsages, true);\r\n\r\n const privateKeyData = rsa.native.getPrivateKey();\r\n const priv = KeyObject.createKeyObject(\r\n 'private',\r\n privateKeyData,\r\n ) as PrivateKeyObject;\r\n const privateKey = new CryptoKey(\r\n priv,\r\n keyAlgorithm,\r\n privateUsages,\r\n extractable,\r\n );\r\n\r\n return { publicKey, privateKey };\r\n}\r\n\r\nfunction rsa_prepareKeyGenParams(\r\n _type: 'rsa' | 'rsa-pss',\r\n options: GenerateKeyPairOptions | undefined,\r\n): Rsa {\r\n if (!options) {\r\n throw new Error('Options are required for RSA key generation');\r\n }\r\n\r\n const {\r\n modulusLength,\r\n publicExponent,\r\n hash = 'sha256',\r\n } = options as {\r\n modulusLength?: number;\r\n publicExponent?: number;\r\n hash?: string;\r\n };\r\n\r\n if (!modulusLength || modulusLength < 256) {\r\n throw new Error('Invalid modulus length');\r\n }\r\n\r\n const pubExp = publicExponent || 65537;\r\n const pubExpBytes = new Uint8Array([\r\n (pubExp >> 16) & 0xff,\r\n (pubExp >> 8) & 0xff,\r\n pubExp & 0xff,\r\n ]);\r\n\r\n const hashName = typeof hash === 'string' ? hash : hash;\r\n\r\n return new Rsa(modulusLength, pubExpBytes, hashName);\r\n}\r\n\r\nfunction rsa_formatKeyPairOutput(\r\n rsa: Rsa,\r\n encoding: KeyPairGenConfig,\r\n): {\r\n publicKey: PublicKeyObject | Buffer | string | ArrayBuffer;\r\n privateKey: PrivateKeyObject | Buffer | string | ArrayBuffer;\r\n} {\r\n const {\r\n publicFormat,\r\n publicType,\r\n privateFormat,\r\n privateType,\r\n cipher,\r\n passphrase,\r\n } = encoding;\r\n\r\n const publicKeyData = rsa.native.getPublicKey();\r\n const privateKeyData = rsa.native.getPrivateKey();\r\n\r\n const pub = KeyObject.createKeyObject(\r\n 'public',\r\n publicKeyData,\r\n ) as PublicKeyObject;\r\n\r\n const priv = KeyObject.createKeyObject(\r\n 'private',\r\n privateKeyData,\r\n ) as PrivateKeyObject;\r\n\r\n let publicKey: PublicKeyObject | Buffer | string | ArrayBuffer;\r\n let privateKey: PrivateKeyObject | Buffer | string | ArrayBuffer;\r\n\r\n if (publicFormat === -1) {\r\n publicKey = pub;\r\n } else {\r\n const format =\r\n publicFormat === KFormatType.PEM ? KFormatType.PEM : KFormatType.DER;\r\n const keyEncoding =\r\n publicType === KeyEncoding.SPKI ? KeyEncoding.SPKI : KeyEncoding.PKCS1;\r\n const exported = pub.handle.exportKey(format, keyEncoding);\r\n if (format === KFormatType.PEM) {\r\n publicKey = Buffer.from(new Uint8Array(exported)).toString('utf-8');\r\n } else {\r\n publicKey = exported;\r\n }\r\n }\r\n\r\n if (privateFormat === -1) {\r\n privateKey = priv;\r\n } else {\r\n const format =\r\n privateFormat === KFormatType.PEM ? KFormatType.PEM : KFormatType.DER;\r\n const keyEncoding =\r\n privateType === KeyEncoding.PKCS8 ? KeyEncoding.PKCS8 : KeyEncoding.PKCS1;\r\n const exported = priv.handle.exportKey(\r\n format,\r\n keyEncoding,\r\n cipher,\r\n passphrase,\r\n );\r\n if (format === KFormatType.PEM) {\r\n privateKey = Buffer.from(new Uint8Array(exported)).toString('utf-8');\r\n } else {\r\n privateKey = exported;\r\n }\r\n }\r\n\r\n return { publicKey, privateKey };\r\n}\r\n\r\nexport async function rsa_generateKeyPairNode(\r\n type: 'rsa' | 'rsa-pss',\r\n options: GenerateKeyPairOptions | undefined,\r\n encoding: KeyPairGenConfig,\r\n): Promise<{\r\n publicKey: PublicKeyObject | Buffer | string | ArrayBuffer;\r\n privateKey: PrivateKeyObject | Buffer | string | ArrayBuffer;\r\n}> {\r\n const rsa = rsa_prepareKeyGenParams(type, options);\r\n await rsa.generateKeyPair();\r\n return rsa_formatKeyPairOutput(rsa, encoding);\r\n}\r\n\r\nexport function rsa_generateKeyPairNodeSync(\r\n type: 'rsa' | 'rsa-pss',\r\n options: GenerateKeyPairOptions | undefined,\r\n encoding: KeyPairGenConfig,\r\n): {\r\n publicKey: PublicKeyObject | Buffer | string | ArrayBuffer;\r\n privateKey: PrivateKeyObject | Buffer | string | ArrayBuffer;\r\n} {\r\n const rsa = rsa_prepareKeyGenParams(type, options);\r\n rsa.generateKeyPairSync();\r\n return rsa_formatKeyPairOutput(rsa, encoding);\r\n}\r\n"],"mappings":"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","ignoreList":[]}
@@ -10,7 +10,7 @@ var _keys = require("./keys");
10
10
  var _utils = require("./utils");
11
11
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
12
12
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
13
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
13
+ function _toPrimitive(t, e) { if ("object" != typeof t || !t) return t; var r; if ("undefined" != typeof Symbol && void 0 !== (r = t[Symbol.toPrimitive])) { var i = r.call(t, e || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === e ? String : Number)(t); }
14
14
  const X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT = 0x1;
15
15
  const X509_CHECK_FLAG_NO_WILDCARDS = 0x2;
16
16
  const X509_CHECK_FLAG_NO_PARTIAL_WILDCARDS = 0x4;
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNativeNitroModules","require","_reactNativeBuffer","_keys","_utils","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT","X509_CHECK_FLAG_NO_WILDCARDS","X509_CHECK_FLAG_NO_PARTIAL_WILDCARDS","X509_CHECK_FLAG_MULTI_LABEL_WILDCARDS","X509_CHECK_FLAG_SINGLE_LABEL_SUBDOMAINS","X509_CHECK_FLAG_NEVER_CHECK_SUBJECT","getFlags","options","flags","subject","wildcards","partialWildcards","multiLabelWildcards","singleLabelSubdomains","X509Certificate","constructor","buffer","Map","handle","NitroModules","createHybridObject","ab","Buffer","from","binaryLikeToArrayBuffer","init","cached","key","compute","cache","has","get","set","subjectAltName","issuer","infoAccess","validFrom","validTo","validFromDate","Date","validToDate","fingerprint","fingerprint256","fingerprint512","extKeyUsage","keyUsage","serialNumber","signatureAlgorithm","signatureAlgorithmOid","ca","raw","publicKey","PublicKeyObject","issuerCertificate","undefined","checkHost","name","checkEmail","email","checkIP","ip","checkIssued","otherCert","checkPrivateKey","pkey","KeyObject","type","verify","toString","pem","toJSON","toLegacyObject","subjectaltname","modulus","bits","exponent","valid_from","valid_to","ext_key_usage","exports"],"sources":["x509certificate.ts"],"sourcesContent":["import { NitroModules } from 'react-native-nitro-modules';\r\nimport { Buffer } from '@craftzdog/react-native-buffer';\r\nimport type { X509CertificateHandle } from './specs/v1/x509certificate.nitro';\r\nimport { PublicKeyObject, KeyObject } from './keys';\r\nimport type { BinaryLike } from './utils';\r\nimport { binaryLikeToArrayBuffer } from './utils';\r\n\r\nconst X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT = 0x1;\r\nconst X509_CHECK_FLAG_NO_WILDCARDS = 0x2;\r\nconst X509_CHECK_FLAG_NO_PARTIAL_WILDCARDS = 0x4;\r\nconst X509_CHECK_FLAG_MULTI_LABEL_WILDCARDS = 0x8;\r\nconst X509_CHECK_FLAG_SINGLE_LABEL_SUBDOMAINS = 0x10;\r\nconst X509_CHECK_FLAG_NEVER_CHECK_SUBJECT = 0x20;\r\n\r\nexport interface X509LegacyObject {\r\n subject: string;\r\n issuer: string;\r\n subjectaltname: string;\r\n infoAccess: string;\r\n ca: boolean;\r\n modulus: undefined;\r\n bits: undefined;\r\n exponent: undefined;\r\n valid_from: string;\r\n valid_to: string;\r\n fingerprint: string;\r\n fingerprint256: string;\r\n fingerprint512: string;\r\n ext_key_usage: string[];\r\n serialNumber: string;\r\n raw: Buffer;\r\n}\r\n\r\nexport interface CheckOptions {\r\n subject?: 'default' | 'always' | 'never';\r\n wildcards?: boolean;\r\n partialWildcards?: boolean;\r\n multiLabelWildcards?: boolean;\r\n singleLabelSubdomains?: boolean;\r\n}\r\n\r\nfunction getFlags(options?: CheckOptions): number {\r\n if (!options) return 0;\r\n\r\n let flags = 0;\r\n\r\n if (options.subject === 'always') {\r\n flags |= X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT;\r\n } else if (options.subject === 'never') {\r\n flags |= X509_CHECK_FLAG_NEVER_CHECK_SUBJECT;\r\n }\r\n\r\n if (options.wildcards === false) {\r\n flags |= X509_CHECK_FLAG_NO_WILDCARDS;\r\n }\r\n\r\n if (options.partialWildcards === false) {\r\n flags |= X509_CHECK_FLAG_NO_PARTIAL_WILDCARDS;\r\n }\r\n\r\n if (options.multiLabelWildcards === true) {\r\n flags |= X509_CHECK_FLAG_MULTI_LABEL_WILDCARDS;\r\n }\r\n\r\n if (options.singleLabelSubdomains === true) {\r\n flags |= X509_CHECK_FLAG_SINGLE_LABEL_SUBDOMAINS;\r\n }\r\n\r\n return flags;\r\n}\r\n\r\nexport class X509Certificate {\r\n private readonly handle: X509CertificateHandle;\r\n private readonly cache = new Map<string, unknown>();\r\n\r\n constructor(buffer: BinaryLike) {\r\n this.handle = NitroModules.createHybridObject<X509CertificateHandle>(\r\n 'X509CertificateHandle',\r\n );\r\n\r\n let ab: ArrayBuffer;\r\n if (typeof buffer === 'string') {\r\n ab = Buffer.from(buffer).buffer as ArrayBuffer;\r\n } else {\r\n ab = binaryLikeToArrayBuffer(buffer);\r\n }\r\n\r\n this.handle.init(ab);\r\n }\r\n\r\n private cached<T>(key: string, compute: () => T): T {\r\n if (this.cache.has(key)) {\r\n return this.cache.get(key) as T;\r\n }\r\n const value = compute();\r\n this.cache.set(key, value);\r\n return value;\r\n }\r\n\r\n get subject(): string {\r\n return this.cached('subject', () => this.handle.subject());\r\n }\r\n\r\n get subjectAltName(): string {\r\n return this.cached('subjectAltName', () => this.handle.subjectAltName());\r\n }\r\n\r\n get issuer(): string {\r\n return this.cached('issuer', () => this.handle.issuer());\r\n }\r\n\r\n get infoAccess(): string {\r\n return this.cached('infoAccess', () => this.handle.infoAccess());\r\n }\r\n\r\n get validFrom(): string {\r\n return this.cached('validFrom', () => this.handle.validFrom());\r\n }\r\n\r\n get validTo(): string {\r\n return this.cached('validTo', () => this.handle.validTo());\r\n }\r\n\r\n get validFromDate(): Date {\r\n return this.cached(\r\n 'validFromDate',\r\n () => new Date(this.handle.validFromDate()),\r\n );\r\n }\r\n\r\n get validToDate(): Date {\r\n return this.cached(\r\n 'validToDate',\r\n () => new Date(this.handle.validToDate()),\r\n );\r\n }\r\n\r\n get fingerprint(): string {\r\n return this.cached('fingerprint', () => this.handle.fingerprint());\r\n }\r\n\r\n get fingerprint256(): string {\r\n return this.cached('fingerprint256', () => this.handle.fingerprint256());\r\n }\r\n\r\n get fingerprint512(): string {\r\n return this.cached('fingerprint512', () => this.handle.fingerprint512());\r\n }\r\n\r\n get extKeyUsage(): string[] {\r\n return this.cached('extKeyUsage', () => this.handle.keyUsage());\r\n }\r\n\r\n get keyUsage(): string[] {\r\n return this.extKeyUsage;\r\n }\r\n\r\n get serialNumber(): string {\r\n return this.cached('serialNumber', () => this.handle.serialNumber());\r\n }\r\n\r\n get signatureAlgorithm(): string {\r\n return this.cached('signatureAlgorithm', () =>\r\n this.handle.signatureAlgorithm(),\r\n );\r\n }\r\n\r\n get signatureAlgorithmOid(): string {\r\n return this.cached('signatureAlgorithmOid', () =>\r\n this.handle.signatureAlgorithmOid(),\r\n );\r\n }\r\n\r\n get ca(): boolean {\r\n return this.cached('ca', () => this.handle.ca());\r\n }\r\n\r\n get raw(): Buffer {\r\n return this.cached('raw', () => Buffer.from(this.handle.raw()));\r\n }\r\n\r\n get publicKey(): PublicKeyObject {\r\n return this.cached(\r\n 'publicKey',\r\n () => new PublicKeyObject(this.handle.publicKey()),\r\n );\r\n }\r\n\r\n get issuerCertificate(): undefined {\r\n return undefined;\r\n }\r\n\r\n checkHost(name: string, options?: CheckOptions): string | undefined {\r\n if (typeof name !== 'string') {\r\n throw new TypeError('The \"name\" argument must be a string');\r\n }\r\n return this.handle.checkHost(name, getFlags(options));\r\n }\r\n\r\n checkEmail(email: string, options?: CheckOptions): string | undefined {\r\n if (typeof email !== 'string') {\r\n throw new TypeError('The \"email\" argument must be a string');\r\n }\r\n return this.handle.checkEmail(email, getFlags(options));\r\n }\r\n\r\n checkIP(ip: string): string | undefined {\r\n if (typeof ip !== 'string') {\r\n throw new TypeError('The \"ip\" argument must be a string');\r\n }\r\n return this.handle.checkIP(ip);\r\n }\r\n\r\n checkIssued(otherCert: X509Certificate): boolean {\r\n if (!(otherCert instanceof X509Certificate)) {\r\n throw new TypeError(\r\n 'The \"otherCert\" argument must be an instance of X509Certificate',\r\n );\r\n }\r\n return this.handle.checkIssued(otherCert.handle);\r\n }\r\n\r\n checkPrivateKey(pkey: KeyObject): boolean {\r\n if (!(pkey instanceof KeyObject)) {\r\n throw new TypeError(\r\n 'The \"pkey\" argument must be an instance of KeyObject',\r\n );\r\n }\r\n if (pkey.type !== 'private') {\r\n throw new TypeError('The \"pkey\" argument must be a private key');\r\n }\r\n return this.handle.checkPrivateKey(pkey.handle);\r\n }\r\n\r\n verify(pkey: KeyObject): boolean {\r\n if (!(pkey instanceof KeyObject)) {\r\n throw new TypeError(\r\n 'The \"pkey\" argument must be an instance of KeyObject',\r\n );\r\n }\r\n if (pkey.type !== 'public') {\r\n throw new TypeError(\r\n `The \"pkey\" argument must be a public key, got '${pkey.type}'`,\r\n );\r\n }\r\n return this.handle.verify(pkey.handle);\r\n }\r\n\r\n toString(): string {\r\n return this.cached('pem', () => this.handle.pem());\r\n }\r\n\r\n toJSON(): string {\r\n return this.toString();\r\n }\r\n\r\n toLegacyObject(): X509LegacyObject {\r\n return {\r\n subject: this.subject,\r\n issuer: this.issuer,\r\n subjectaltname: this.subjectAltName,\r\n infoAccess: this.infoAccess,\r\n ca: this.ca,\r\n modulus: undefined,\r\n bits: undefined,\r\n exponent: undefined,\r\n valid_from: this.validFrom,\r\n valid_to: this.validTo,\r\n fingerprint: this.fingerprint,\r\n fingerprint256: this.fingerprint256,\r\n fingerprint512: this.fingerprint512,\r\n ext_key_usage: this.keyUsage,\r\n serialNumber: this.serialNumber,\r\n raw: this.raw,\r\n };\r\n }\r\n}\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNativeNitroModules","require","_reactNativeBuffer","_keys","_utils","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT","X509_CHECK_FLAG_NO_WILDCARDS","X509_CHECK_FLAG_NO_PARTIAL_WILDCARDS","X509_CHECK_FLAG_MULTI_LABEL_WILDCARDS","X509_CHECK_FLAG_SINGLE_LABEL_SUBDOMAINS","X509_CHECK_FLAG_NEVER_CHECK_SUBJECT","getFlags","options","flags","subject","wildcards","partialWildcards","multiLabelWildcards","singleLabelSubdomains","X509Certificate","constructor","buffer","Map","handle","NitroModules","createHybridObject","ab","Buffer","from","binaryLikeToArrayBuffer","init","cached","key","compute","cache","has","get","set","subjectAltName","issuer","infoAccess","validFrom","validTo","validFromDate","Date","validToDate","fingerprint","fingerprint256","fingerprint512","extKeyUsage","keyUsage","serialNumber","signatureAlgorithm","signatureAlgorithmOid","ca","raw","publicKey","PublicKeyObject","issuerCertificate","undefined","checkHost","name","checkEmail","email","checkIP","ip","checkIssued","otherCert","checkPrivateKey","pkey","KeyObject","type","verify","toString","pem","toJSON","toLegacyObject","subjectaltname","modulus","bits","exponent","valid_from","valid_to","ext_key_usage","exports"],"sources":["x509certificate.ts"],"sourcesContent":["import { NitroModules } from 'react-native-nitro-modules';\r\nimport { Buffer } from '@craftzdog/react-native-buffer';\r\nimport type { X509CertificateHandle } from './specs/v1/x509certificate.nitro';\r\nimport { PublicKeyObject, KeyObject } from './keys';\r\nimport type { BinaryLike } from './utils';\r\nimport { binaryLikeToArrayBuffer } from './utils';\r\n\r\nconst X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT = 0x1;\r\nconst X509_CHECK_FLAG_NO_WILDCARDS = 0x2;\r\nconst X509_CHECK_FLAG_NO_PARTIAL_WILDCARDS = 0x4;\r\nconst X509_CHECK_FLAG_MULTI_LABEL_WILDCARDS = 0x8;\r\nconst X509_CHECK_FLAG_SINGLE_LABEL_SUBDOMAINS = 0x10;\r\nconst X509_CHECK_FLAG_NEVER_CHECK_SUBJECT = 0x20;\r\n\r\nexport interface X509LegacyObject {\r\n subject: string;\r\n issuer: string;\r\n subjectaltname: string;\r\n infoAccess: string;\r\n ca: boolean;\r\n modulus: undefined;\r\n bits: undefined;\r\n exponent: undefined;\r\n valid_from: string;\r\n valid_to: string;\r\n fingerprint: string;\r\n fingerprint256: string;\r\n fingerprint512: string;\r\n ext_key_usage: string[];\r\n serialNumber: string;\r\n raw: Buffer;\r\n}\r\n\r\nexport interface CheckOptions {\r\n subject?: 'default' | 'always' | 'never';\r\n wildcards?: boolean;\r\n partialWildcards?: boolean;\r\n multiLabelWildcards?: boolean;\r\n singleLabelSubdomains?: boolean;\r\n}\r\n\r\nfunction getFlags(options?: CheckOptions): number {\r\n if (!options) return 0;\r\n\r\n let flags = 0;\r\n\r\n if (options.subject === 'always') {\r\n flags |= X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT;\r\n } else if (options.subject === 'never') {\r\n flags |= X509_CHECK_FLAG_NEVER_CHECK_SUBJECT;\r\n }\r\n\r\n if (options.wildcards === false) {\r\n flags |= X509_CHECK_FLAG_NO_WILDCARDS;\r\n }\r\n\r\n if (options.partialWildcards === false) {\r\n flags |= X509_CHECK_FLAG_NO_PARTIAL_WILDCARDS;\r\n }\r\n\r\n if (options.multiLabelWildcards === true) {\r\n flags |= X509_CHECK_FLAG_MULTI_LABEL_WILDCARDS;\r\n }\r\n\r\n if (options.singleLabelSubdomains === true) {\r\n flags |= X509_CHECK_FLAG_SINGLE_LABEL_SUBDOMAINS;\r\n }\r\n\r\n return flags;\r\n}\r\n\r\nexport class X509Certificate {\r\n private readonly handle: X509CertificateHandle;\r\n private readonly cache = new Map<string, unknown>();\r\n\r\n constructor(buffer: BinaryLike) {\r\n this.handle = NitroModules.createHybridObject<X509CertificateHandle>(\r\n 'X509CertificateHandle',\r\n );\r\n\r\n let ab: ArrayBuffer;\r\n if (typeof buffer === 'string') {\r\n ab = Buffer.from(buffer).buffer as ArrayBuffer;\r\n } else {\r\n ab = binaryLikeToArrayBuffer(buffer);\r\n }\r\n\r\n this.handle.init(ab);\r\n }\r\n\r\n private cached<T>(key: string, compute: () => T): T {\r\n if (this.cache.has(key)) {\r\n return this.cache.get(key) as T;\r\n }\r\n const value = compute();\r\n this.cache.set(key, value);\r\n return value;\r\n }\r\n\r\n get subject(): string {\r\n return this.cached('subject', () => this.handle.subject());\r\n }\r\n\r\n get subjectAltName(): string {\r\n return this.cached('subjectAltName', () => this.handle.subjectAltName());\r\n }\r\n\r\n get issuer(): string {\r\n return this.cached('issuer', () => this.handle.issuer());\r\n }\r\n\r\n get infoAccess(): string {\r\n return this.cached('infoAccess', () => this.handle.infoAccess());\r\n }\r\n\r\n get validFrom(): string {\r\n return this.cached('validFrom', () => this.handle.validFrom());\r\n }\r\n\r\n get validTo(): string {\r\n return this.cached('validTo', () => this.handle.validTo());\r\n }\r\n\r\n get validFromDate(): Date {\r\n return this.cached(\r\n 'validFromDate',\r\n () => new Date(this.handle.validFromDate()),\r\n );\r\n }\r\n\r\n get validToDate(): Date {\r\n return this.cached(\r\n 'validToDate',\r\n () => new Date(this.handle.validToDate()),\r\n );\r\n }\r\n\r\n get fingerprint(): string {\r\n return this.cached('fingerprint', () => this.handle.fingerprint());\r\n }\r\n\r\n get fingerprint256(): string {\r\n return this.cached('fingerprint256', () => this.handle.fingerprint256());\r\n }\r\n\r\n get fingerprint512(): string {\r\n return this.cached('fingerprint512', () => this.handle.fingerprint512());\r\n }\r\n\r\n get extKeyUsage(): string[] {\r\n return this.cached('extKeyUsage', () => this.handle.keyUsage());\r\n }\r\n\r\n get keyUsage(): string[] {\r\n return this.extKeyUsage;\r\n }\r\n\r\n get serialNumber(): string {\r\n return this.cached('serialNumber', () => this.handle.serialNumber());\r\n }\r\n\r\n get signatureAlgorithm(): string {\r\n return this.cached('signatureAlgorithm', () =>\r\n this.handle.signatureAlgorithm(),\r\n );\r\n }\r\n\r\n get signatureAlgorithmOid(): string {\r\n return this.cached('signatureAlgorithmOid', () =>\r\n this.handle.signatureAlgorithmOid(),\r\n );\r\n }\r\n\r\n get ca(): boolean {\r\n return this.cached('ca', () => this.handle.ca());\r\n }\r\n\r\n get raw(): Buffer {\r\n return this.cached('raw', () => Buffer.from(this.handle.raw()));\r\n }\r\n\r\n get publicKey(): PublicKeyObject {\r\n return this.cached(\r\n 'publicKey',\r\n () => new PublicKeyObject(this.handle.publicKey()),\r\n );\r\n }\r\n\r\n get issuerCertificate(): undefined {\r\n return undefined;\r\n }\r\n\r\n checkHost(name: string, options?: CheckOptions): string | undefined {\r\n if (typeof name !== 'string') {\r\n throw new TypeError('The \"name\" argument must be a string');\r\n }\r\n return this.handle.checkHost(name, getFlags(options));\r\n }\r\n\r\n checkEmail(email: string, options?: CheckOptions): string | undefined {\r\n if (typeof email !== 'string') {\r\n throw new TypeError('The \"email\" argument must be a string');\r\n }\r\n return this.handle.checkEmail(email, getFlags(options));\r\n }\r\n\r\n checkIP(ip: string): string | undefined {\r\n if (typeof ip !== 'string') {\r\n throw new TypeError('The \"ip\" argument must be a string');\r\n }\r\n return this.handle.checkIP(ip);\r\n }\r\n\r\n checkIssued(otherCert: X509Certificate): boolean {\r\n if (!(otherCert instanceof X509Certificate)) {\r\n throw new TypeError(\r\n 'The \"otherCert\" argument must be an instance of X509Certificate',\r\n );\r\n }\r\n return this.handle.checkIssued(otherCert.handle);\r\n }\r\n\r\n checkPrivateKey(pkey: KeyObject): boolean {\r\n if (!(pkey instanceof KeyObject)) {\r\n throw new TypeError(\r\n 'The \"pkey\" argument must be an instance of KeyObject',\r\n );\r\n }\r\n if (pkey.type !== 'private') {\r\n throw new TypeError('The \"pkey\" argument must be a private key');\r\n }\r\n return this.handle.checkPrivateKey(pkey.handle);\r\n }\r\n\r\n verify(pkey: KeyObject): boolean {\r\n if (!(pkey instanceof KeyObject)) {\r\n throw new TypeError(\r\n 'The \"pkey\" argument must be an instance of KeyObject',\r\n );\r\n }\r\n if (pkey.type !== 'public') {\r\n throw new TypeError(\r\n `The \"pkey\" argument must be a public key, got '${pkey.type}'`,\r\n );\r\n }\r\n return this.handle.verify(pkey.handle);\r\n }\r\n\r\n toString(): string {\r\n return this.cached('pem', () => this.handle.pem());\r\n }\r\n\r\n toJSON(): string {\r\n return this.toString();\r\n }\r\n\r\n toLegacyObject(): X509LegacyObject {\r\n return {\r\n subject: this.subject,\r\n issuer: this.issuer,\r\n subjectaltname: this.subjectAltName,\r\n infoAccess: this.infoAccess,\r\n ca: this.ca,\r\n modulus: undefined,\r\n bits: undefined,\r\n exponent: undefined,\r\n valid_from: this.validFrom,\r\n valid_to: this.validTo,\r\n fingerprint: this.fingerprint,\r\n fingerprint256: this.fingerprint256,\r\n fingerprint512: this.fingerprint512,\r\n ext_key_usage: this.keyUsage,\r\n serialNumber: this.serialNumber,\r\n raw: this.raw,\r\n };\r\n }\r\n}\r\n"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
2
2
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
3
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
3
+ function _toPrimitive(t, e) { if ("object" != typeof t || !t) return t; var r; if ("undefined" != typeof Symbol && void 0 !== (r = t[Symbol.toPrimitive])) { var i = r.call(t, e || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === e ? String : Number)(t); }
4
4
  import { NitroModules } from 'react-native-nitro-modules';
5
5
  import { Buffer } from '@craftzdog/react-native-buffer';
6
6
  import { binaryLikeToArrayBuffer, ab2str } from './utils';
@@ -1,6 +1,6 @@
1
1
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
2
2
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
3
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
3
+ function _toPrimitive(t, e) { if ("object" != typeof t || !t) return t; var r; if ("undefined" != typeof Symbol && void 0 !== (r = t[Symbol.toPrimitive])) { var i = r.call(t, e || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === e ? String : Number)(t); }
4
4
  import { NitroModules } from 'react-native-nitro-modules';
5
5
  import Stream from 'readable-stream';
6
6
  import { StringDecoder } from 'string_decoder';
@@ -1,6 +1,6 @@
1
1
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
2
2
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
3
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
3
+ function _toPrimitive(t, e) { if ("object" != typeof t || !t) return t; var r; if ("undefined" != typeof Symbol && void 0 !== (r = t[Symbol.toPrimitive])) { var i = r.call(t, e || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === e ? String : Number)(t); }
4
4
  import { NitroModules } from 'react-native-nitro-modules';
5
5
  import { Buffer } from '@craftzdog/react-native-buffer';
6
6
  import { KeyObject } from './keys/classes';
@@ -1,6 +1,6 @@
1
1
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
2
2
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
3
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
3
+ function _toPrimitive(t, e) { if ("object" != typeof t || !t) return t; var r; if ("undefined" != typeof Symbol && void 0 !== (r = t[Symbol.toPrimitive])) { var i = r.call(t, e || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === e ? String : Number)(t); }
4
4
  import { NitroModules } from 'react-native-nitro-modules';
5
5
  import { Buffer } from '@craftzdog/react-native-buffer';
6
6
  import { DH_GROUPS } from './dh-groups';
@@ -1,6 +1,6 @@
1
1
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
2
2
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
3
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
3
+ function _toPrimitive(t, e) { if ("object" != typeof t || !t) return t; var r; if ("undefined" != typeof Symbol && void 0 !== (r = t[Symbol.toPrimitive])) { var i = r.call(t, e || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === e ? String : Number)(t); }
4
4
  import { NitroModules } from 'react-native-nitro-modules';
5
5
  import { Buffer } from '@craftzdog/react-native-buffer';
6
6
  import { KeyObject } from './keys/classes';
package/dist/module/ec.js CHANGED
@@ -1,6 +1,6 @@
1
1
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
2
2
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
3
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
3
+ function _toPrimitive(t, e) { if ("object" != typeof t || !t) return t; var r; if ("undefined" != typeof Symbol && void 0 !== (r = t[Symbol.toPrimitive])) { var i = r.call(t, e || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === e ? String : Number)(t); }
4
4
  import { NitroModules } from 'react-native-nitro-modules';
5
5
  import { CryptoKey, KeyObject, PublicKeyObject, PrivateKeyObject } from './keys/classes';
6
6
  import { bufferLikeToArrayBuffer, getUsagesUnion, hasAnyNotIn, kNamedCurveAliases, lazyDOMException, normalizeHashName, HashContext, KeyEncoding, KFormatType } from './utils';
@@ -1,6 +1,6 @@
1
1
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
2
2
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
3
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
3
+ function _toPrimitive(t, e) { if ("object" != typeof t || !t) return t; var r; if ("undefined" != typeof Symbol && void 0 !== (r = t[Symbol.toPrimitive])) { var i = r.call(t, e || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === e ? String : Number)(t); }
4
4
  import { NitroModules } from 'react-native-nitro-modules';
5
5
  import { Buffer } from '@craftzdog/react-native-buffer';
6
6
  import { toArrayBuffer } from './utils/conversion';
package/dist/module/ed.js CHANGED
@@ -1,6 +1,6 @@
1
1
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
2
2
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
3
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
3
+ function _toPrimitive(t, e) { if ("object" != typeof t || !t) return t; var r; if ("undefined" != typeof Symbol && void 0 !== (r = t[Symbol.toPrimitive])) { var i = r.call(t, e || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === e ? String : Number)(t); }
4
4
  import { NitroModules } from 'react-native-nitro-modules';
5
5
  import { Buffer } from '@craftzdog/react-native-buffer';
6
6
  import { CryptoKey, KeyObject } from './keys/classes';
@@ -1,6 +1,6 @@
1
1
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
2
2
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
3
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
3
+ function _toPrimitive(t, e) { if ("object" != typeof t || !t) return t; var r; if ("undefined" != typeof Symbol && void 0 !== (r = t[Symbol.toPrimitive])) { var i = r.call(t, e || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === e ? String : Number)(t); }
4
4
  import { Stream } from 'readable-stream';
5
5
  import { NitroModules } from 'react-native-nitro-modules';
6
6
  import { Buffer } from '@craftzdog/react-native-buffer';
@@ -1,6 +1,6 @@
1
1
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
2
2
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
3
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
3
+ function _toPrimitive(t, e) { if ("object" != typeof t || !t) return t; var r; if ("undefined" != typeof Symbol && void 0 !== (r = t[Symbol.toPrimitive])) { var i = r.call(t, e || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === e ? String : Number)(t); }
4
4
  import { Buffer } from '@craftzdog/react-native-buffer';
5
5
  import { Stream } from 'readable-stream';
6
6
  import { NitroModules } from 'react-native-nitro-modules';
@@ -1,6 +1,6 @@
1
1
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
2
2
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
3
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
3
+ function _toPrimitive(t, e) { if ("object" != typeof t || !t) return t; var r; if ("undefined" != typeof Symbol && void 0 !== (r = t[Symbol.toPrimitive])) { var i = r.call(t, e || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === e ? String : Number)(t); }
4
4
  import { Buffer } from 'buffer';
5
5
  import { NitroModules } from 'react-native-nitro-modules';
6
6
  import { KeyType } from '../utils';
@@ -1,6 +1,6 @@
1
1
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
2
2
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
3
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
3
+ function _toPrimitive(t, e) { if ("object" != typeof t || !t) return t; var r; if ("undefined" != typeof Symbol && void 0 !== (r = t[Symbol.toPrimitive])) { var i = r.call(t, e || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === e ? String : Number)(t); }
4
4
  import { Buffer } from '@craftzdog/react-native-buffer';
5
5
  import { NitroModules } from 'react-native-nitro-modules';
6
6
  import { KeyObject } from './classes';
@@ -1,6 +1,6 @@
1
1
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
2
2
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
3
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
3
+ function _toPrimitive(t, e) { if ("object" != typeof t || !t) return t; var r; if ("undefined" != typeof Symbol && void 0 !== (r = t[Symbol.toPrimitive])) { var i = r.call(t, e || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === e ? String : Number)(t); }
4
4
  import { NitroModules } from 'react-native-nitro-modules';
5
5
  import { CryptoKey, KeyObject } from './keys';
6
6
  import { hasAnyNotIn, lazyDOMException, getUsagesUnion, KFormatType, KeyEncoding } from './utils';
@@ -1,6 +1,6 @@
1
1
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
2
2
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
3
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
3
+ function _toPrimitive(t, e) { if ("object" != typeof t || !t) return t; var r; if ("undefined" != typeof Symbol && void 0 !== (r = t[Symbol.toPrimitive])) { var i = r.call(t, e || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === e ? String : Number)(t); }
4
4
  import { NitroModules } from 'react-native-nitro-modules';
5
5
  import { CryptoKey, KeyObject, isCryptoKey } from './keys';
6
6
  import { hasAnyNotIn, lazyDOMException, getUsagesUnion, KFormatType, KeyEncoding, isStringOrBuffer, binaryLikeToArrayBuffer as toAB } from './utils';
@@ -1,6 +1,6 @@
1
1
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
2
2
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
3
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
3
+ function _toPrimitive(t, e) { if ("object" != typeof t || !t) return t; var r; if ("undefined" != typeof Symbol && void 0 !== (r = t[Symbol.toPrimitive])) { var i = r.call(t, e || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === e ? String : Number)(t); }
4
4
  import { NitroModules } from 'react-native-nitro-modules';
5
5
  import { Buffer } from '@craftzdog/react-native-buffer';
6
6
  import { CryptoKey, KeyObject } from './keys/classes';
@@ -1,6 +1,6 @@
1
1
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
2
2
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
3
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
3
+ function _toPrimitive(t, e) { if ("object" != typeof t || !t) return t; var r; if ("undefined" != typeof Symbol && void 0 !== (r = t[Symbol.toPrimitive])) { var i = r.call(t, e || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === e ? String : Number)(t); }
4
4
  import { NitroModules } from 'react-native-nitro-modules';
5
5
  import { Buffer } from '@craftzdog/react-native-buffer';
6
6
  import { PublicKeyObject, KeyObject } from './keys';
@@ -1,6 +1,9 @@
1
+ **react-native-quick-crypto**
2
+
1
3
  MIT License
2
4
 
3
- Copyright (c) 2015-present, Facebook, Inc.
5
+ Copyright (c) 2021 Margelo GmbH
6
+ Modifications Copyright (c) 2026 HarmonyOS X-platform Alliance
4
7
 
5
8
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
9
  of this software and associated documentation files (the "Software"), to deal
@@ -18,4 +21,8 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
21
  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
22
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
23
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
24
+ SOFTWARE.
25
+
26
+ **NodeJS Crypto**
27
+
28
+ See https://github.com/nodejs/node/blob/main/LICENSE
Binary file