@gjsify/crypto 0.5.2 → 0.6.1

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.
@@ -0,0 +1 @@
1
+ import"../_virtual/_rolldown/runtime.js";import{sha224 as e,sha256 as t,sha384 as n,sha512 as r,sha512_256 as i}from"@noble/hashes/sha2";import{md5 as a,sha1 as o}from"@noble/hashes/legacy";const s=[`md5`,`sha1`,`sha224`,`sha256`,`sha384`,`sha512`,`sha512-256`];function normalizeAlgorithm(e){return e.toLowerCase().replace(/-/g,``)}const c={sha1:o,sha224:e,sha256:t,sha384:n,sha512:r,sha512256:i,md5:a};function getNobleHash(e){let t=c[normalizeAlgorithm(e)];if(!t){let t=Error(`Unknown message digest: ${e}`);throw t.code=`ERR_CRYPTO_HASH_UNKNOWN`,t}return t}export{s as SUPPORTED_HASHES,getNobleHash,normalizeAlgorithm};
@@ -0,0 +1 @@
1
+ import"../_virtual/_rolldown/runtime.js";import{SUPPORTED_HASHES as e,getNobleHash as t,normalizeAlgorithm as n}from"./algos.js";import{Buffer as r}from"node:buffer";var i=class Hash{_algorithm;_hasher;_finalized=!1;constructor(e){let r=t(e);this._algorithm=n(e),this._hasher=r.create()}update(e,t){if(this._finalized)throw Error(`Digest already called`);let n;return n=typeof e==`string`?r.from(e,t??`utf8`):e instanceof Uint8Array?e:r.from(e),this._hasher.update(n),this}digest(e){if(this._finalized)throw Error(`Digest already called`);this._finalized=!0;let t=this._hasher.digest(),n=r.from(t);return e?n.toString(e):n}copy(){if(this._finalized)throw Error(`Digest already called`);let e=new Hash(this._algorithm);return e._hasher=this._hasher.clone(),e}};function createHash(e){return new i(e)}function getHashes(){return[...e]}function hash(e,t,n){return new i(e).update(t).digest(n)}export{i as Hash,createHash,getHashes,hash};
@@ -0,0 +1 @@
1
+ import"../_virtual/_rolldown/runtime.js";import{getNobleHash as e}from"./algos.js";import{Buffer as t}from"node:buffer";import{hmac as n}from"@noble/hashes/hmac";var Hmac=class{_hasher;_finalized=!1;constructor(r,i){let a=e(r),o;o=typeof i==`string`?t.from(i,`utf8`):i instanceof Uint8Array?i:t.from(i),this._hasher=n.create(a,o)}update(e,n){if(this._finalized)throw Error(`Digest already called`);let r;return r=typeof e==`string`?t.from(e,n??`utf8`):e instanceof Uint8Array?e:t.from(e),this._hasher.update(r),this}digest(e){if(this._finalized)throw Error(`Digest already called`);this._finalized=!0;let n=this._hasher.digest(),r=t.from(n);return e?r.toString(e):r}};function createHmac(e,t){return new Hmac(e,t)}export{Hmac,createHmac};
@@ -0,0 +1 @@
1
+ import"../_virtual/_rolldown/runtime.js";function notSupported(e,t){let n=`${e} is not supported in NativeScript builds.${t?` `+t:``}`,r=Error(n);throw r.code=`ENOTSUP`,r}function createCipher(...e){return notSupported(`createCipher`,`AES cipher requires a native crypto backend not available on NativeScript.`)}function createCipheriv(...e){return notSupported(`createCipheriv`,`AES cipher requires a native crypto backend not available on NativeScript.`)}function createDecipher(...e){return notSupported(`createDecipher`,`AES decipher requires a native crypto backend not available on NativeScript.`)}function createDecipheriv(...e){return notSupported(`createDecipheriv`,`AES decipher requires a native crypto backend not available on NativeScript.`)}function getCiphers(){return[]}function createDiffieHellman(...e){return notSupported(`createDiffieHellman`)}function getDiffieHellman(e){return notSupported(`getDiffieHellman`)}var DiffieHellman=class{constructor(){notSupported(`DiffieHellman`)}},DiffieHellmanGroup=class{constructor(){notSupported(`DiffieHellmanGroup`)}};function createDiffieHellmanGroup(e){return notSupported(`createDiffieHellmanGroup`)}function createECDH(e){return notSupported(`createECDH`)}function getCurves(){return[]}function createSign(e){return notSupported(`createSign`)}function createVerify(e){return notSupported(`createVerify`)}var Sign=class{constructor(){notSupported(`Sign`)}},Verify=class{constructor(){notSupported(`Verify`)}};function sign(...e){return notSupported(`sign`)}function verify(...e){return notSupported(`verify`)}function pbkdf2(...e){return notSupported(`pbkdf2`,`Use a pure-JS pbkdf2 implementation or a future @gjsify update.`)}function pbkdf2Sync(...e){return notSupported(`pbkdf2Sync`,`Use a pure-JS pbkdf2 implementation or a future @gjsify update.`)}function hkdf(...e){return notSupported(`hkdf`,`Use a pure-JS hkdf implementation or a future @gjsify update.`)}function hkdfSync(...e){return notSupported(`hkdfSync`,`Use a pure-JS hkdf implementation or a future @gjsify update.`)}function scrypt(...e){return notSupported(`scrypt`)}function scryptSync(...e){return notSupported(`scryptSync`)}function ecdsaSign(...e){return notSupported(`ecdsaSign`)}function ecdsaVerify(...e){return notSupported(`ecdsaVerify`)}function publicEncrypt(...e){return notSupported(`publicEncrypt`)}function privateDecrypt(...e){return notSupported(`privateDecrypt`)}function privateEncrypt(...e){return notSupported(`privateEncrypt`)}function publicDecrypt(...e){return notSupported(`publicDecrypt`)}function rsaPssSign(...e){return notSupported(`rsaPssSign`)}function rsaPssVerify(...e){return notSupported(`rsaPssVerify`)}function rsaOaepEncrypt(...e){return notSupported(`rsaOaepEncrypt`)}function rsaOaepDecrypt(...e){return notSupported(`rsaOaepDecrypt`)}function mgf1(...e){return notSupported(`mgf1`)}var KeyObject=class{constructor(){notSupported(`KeyObject`)}};function createSecretKey(...e){return notSupported(`createSecretKey`)}function createPublicKey(...e){return notSupported(`createPublicKey`)}function createPrivateKey(...e){return notSupported(`createPrivateKey`)}var X509Certificate=class{constructor(){notSupported(`X509Certificate`)}};export{DiffieHellman,DiffieHellmanGroup,KeyObject,Sign,Verify,X509Certificate,createCipher,createCipheriv,createDecipher,createDecipheriv,createDiffieHellman,createDiffieHellmanGroup,createECDH,createPrivateKey,createPublicKey,createSecretKey,createSign,createVerify,ecdsaSign,ecdsaVerify,getCiphers,getCurves,getDiffieHellman,hkdf,hkdfSync,mgf1,pbkdf2,pbkdf2Sync,privateDecrypt,privateEncrypt,publicDecrypt,publicEncrypt,rsaOaepDecrypt,rsaOaepEncrypt,rsaPssSign,rsaPssVerify,scrypt,scryptSync,sign,verify};
@@ -0,0 +1 @@
1
+ import{constants as e}from"./constants.js";import{randomBytes as t,randomFill as n,randomFillSync as r,randomInt as i,randomUUID as a}from"./browser/random.js";import{timingSafeEqual as o}from"./timing-safe-equal.js";import{Hash as s,createHash as c,getHashes as l,hash as u}from"./nativescript/hash.js";import{Hmac as d,createHmac as f}from"./nativescript/hmac.js";import{DiffieHellman as p,DiffieHellmanGroup as m,KeyObject as h,Sign as g,Verify as _,X509Certificate as v,createCipher as y,createCipheriv as b,createDecipher as x,createDecipheriv as S,createDiffieHellman as C,createDiffieHellmanGroup as w,createECDH as T,createPrivateKey as E,createPublicKey as D,createSecretKey as O,createSign as k,createVerify as A,ecdsaSign as j,ecdsaVerify as M,getCiphers as N,getCurves as P,getDiffieHellman as F,hkdf as I,hkdfSync as L,mgf1 as R,pbkdf2 as z,pbkdf2Sync as B,privateDecrypt as V,privateEncrypt as H,publicDecrypt as U,publicEncrypt as W,rsaOaepDecrypt as G,rsaOaepEncrypt as K,rsaPssSign as q,rsaPssVerify as J,scrypt as Y,scryptSync as X,sign as Z,verify as Q}from"./nativescript/stubs.js";var $={Hash:s,createHash:c,getHashes:l,hash:u,Hmac:d,createHmac:f,randomBytes:t,randomFill:n,randomFillSync:r,randomUUID:a,randomInt:i,timingSafeEqual:o,constants:e,createCipher:y,createCipheriv:b,createDecipher:x,createDecipheriv:S,getCiphers:N,createDiffieHellman:C,getDiffieHellman:F,DiffieHellman:p,DiffieHellmanGroup:m,createDiffieHellmanGroup:w,createECDH:T,getCurves:P,createSign:k,createVerify:A,Sign:g,Verify:_,sign:Z,verify:Q,pbkdf2:z,pbkdf2Sync:B,hkdf:I,hkdfSync:L,scrypt:Y,scryptSync:X,ecdsaSign:j,ecdsaVerify:M,publicEncrypt:W,privateDecrypt:V,privateEncrypt:H,publicDecrypt:U,rsaPssSign:q,rsaPssVerify:J,rsaOaepEncrypt:K,rsaOaepDecrypt:G,mgf1:R,KeyObject:h,createSecretKey:O,createPublicKey:D,createPrivateKey:E,X509Certificate:v};export{p as DiffieHellman,m as DiffieHellmanGroup,s as Hash,d as Hmac,h as KeyObject,g as Sign,_ as Verify,v as X509Certificate,e as constants,y as createCipher,b as createCipheriv,x as createDecipher,S as createDecipheriv,C as createDiffieHellman,w as createDiffieHellmanGroup,T as createECDH,c as createHash,f as createHmac,E as createPrivateKey,D as createPublicKey,O as createSecretKey,k as createSign,A as createVerify,$ as default,j as ecdsaSign,M as ecdsaVerify,N as getCiphers,P as getCurves,F as getDiffieHellman,l as getHashes,u as hash,I as hkdf,L as hkdfSync,R as mgf1,z as pbkdf2,B as pbkdf2Sync,V as privateDecrypt,H as privateEncrypt,U as publicDecrypt,W as publicEncrypt,t as randomBytes,n as randomFill,r as randomFillSync,i as randomInt,a as randomUUID,G as rsaOaepDecrypt,K as rsaOaepEncrypt,q as rsaPssSign,J as rsaPssVerify,Y as scrypt,X as scryptSync,Z as sign,o as timingSafeEqual,Q as verify};
@@ -0,0 +1,7 @@
1
+ import { type CHash } from '@noble/hashes/utils';
2
+ /** The digest algorithms the NativeScript backend supports, in Node naming. */
3
+ export declare const SUPPORTED_HASHES: readonly ["md5", "sha1", "sha224", "sha256", "sha384", "sha512", "sha512-256"];
4
+ /** Normalise an algorithm name to lowercase without hyphens: "SHA-256" → "sha256". */
5
+ export declare function normalizeAlgorithm(algorithm: string): string;
6
+ /** Resolve a Node digest name to a @noble/hashes hasher, or throw like Node. */
7
+ export declare function getNobleHash(algorithm: string): CHash;
@@ -0,0 +1,17 @@
1
+ import { Buffer } from 'node:buffer';
2
+ /**
3
+ * Hash backed by @noble/hashes — fully synchronous, zero native deps.
4
+ * Compatible with the Node.js Hash API subset expected by NS consumers.
5
+ */
6
+ export declare class Hash {
7
+ private _algorithm;
8
+ private _hasher;
9
+ private _finalized;
10
+ constructor(algorithm: string);
11
+ update(data: string | Buffer | Uint8Array, inputEncoding?: BufferEncoding): this;
12
+ digest(encoding?: BufferEncoding): Buffer | string;
13
+ copy(): Hash;
14
+ }
15
+ export declare function createHash(algorithm: string): Hash;
16
+ export declare function getHashes(): string[];
17
+ export declare function hash(algorithm: string, data: string | Buffer | Uint8Array, encoding?: BufferEncoding): Buffer | string;
@@ -0,0 +1,13 @@
1
+ import { Buffer } from 'node:buffer';
2
+ /**
3
+ * HMAC backed by @noble/hashes/hmac — fully synchronous, zero native deps.
4
+ * Compatible with the Node.js Hmac API subset expected by NS consumers.
5
+ */
6
+ export declare class Hmac {
7
+ private _hasher;
8
+ private _finalized;
9
+ constructor(algorithm: string, key: string | Buffer | Uint8Array);
10
+ update(data: string | Buffer | Uint8Array, inputEncoding?: BufferEncoding): this;
11
+ digest(encoding?: BufferEncoding): Buffer | string;
12
+ }
13
+ export declare function createHmac(algorithm: string, key: string | Buffer | Uint8Array): Hmac;
@@ -0,0 +1,2 @@
1
+ declare const _default: () => Promise<void>;
2
+ export default _default;
@@ -0,0 +1,54 @@
1
+ import type { Buffer } from 'node:buffer';
2
+ export declare function createCipher(..._args: unknown[]): never;
3
+ export declare function createCipheriv(..._args: unknown[]): never;
4
+ export declare function createDecipher(..._args: unknown[]): never;
5
+ export declare function createDecipheriv(..._args: unknown[]): never;
6
+ export declare function getCiphers(): string[];
7
+ export declare function createDiffieHellman(..._args: unknown[]): never;
8
+ export declare function getDiffieHellman(_groupName: string): never;
9
+ export declare class DiffieHellman {
10
+ constructor();
11
+ }
12
+ export declare class DiffieHellmanGroup {
13
+ constructor();
14
+ }
15
+ export declare function createDiffieHellmanGroup(_groupName: string): never;
16
+ export declare function createECDH(_curve: string): never;
17
+ export declare function getCurves(): string[];
18
+ export declare function createSign(_algorithm: string): never;
19
+ export declare function createVerify(_algorithm: string): never;
20
+ export declare class Sign {
21
+ constructor();
22
+ }
23
+ export declare class Verify {
24
+ constructor();
25
+ }
26
+ export declare function sign(..._args: unknown[]): never;
27
+ export declare function verify(..._args: unknown[]): never;
28
+ export declare function pbkdf2(..._args: unknown[]): never;
29
+ export declare function pbkdf2Sync(..._args: unknown[]): never;
30
+ export declare function hkdf(..._args: unknown[]): never;
31
+ export declare function hkdfSync(..._args: unknown[]): never;
32
+ export declare function scrypt(..._args: unknown[]): never;
33
+ export declare function scryptSync(..._args: unknown[]): never;
34
+ export declare function ecdsaSign(..._args: unknown[]): never;
35
+ export declare function ecdsaVerify(..._args: unknown[]): never;
36
+ export declare function publicEncrypt(..._args: unknown[]): never;
37
+ export declare function privateDecrypt(..._args: unknown[]): never;
38
+ export declare function privateEncrypt(..._args: unknown[]): never;
39
+ export declare function publicDecrypt(..._args: unknown[]): never;
40
+ export declare function rsaPssSign(..._args: unknown[]): never;
41
+ export declare function rsaPssVerify(..._args: unknown[]): never;
42
+ export declare function rsaOaepEncrypt(..._args: unknown[]): never;
43
+ export declare function rsaOaepDecrypt(..._args: unknown[]): never;
44
+ export declare function mgf1(..._args: unknown[]): never;
45
+ export declare class KeyObject {
46
+ constructor();
47
+ }
48
+ export declare function createSecretKey(..._args: unknown[]): never;
49
+ export declare function createPublicKey(..._args: unknown[]): never;
50
+ export declare function createPrivateKey(..._args: unknown[]): never;
51
+ export declare class X509Certificate {
52
+ constructor();
53
+ }
54
+ export type { Buffer };
@@ -0,0 +1,76 @@
1
+ export { Hash, createHash, getHashes, hash } from './nativescript/hash.js';
2
+ export { Hmac, createHmac } from './nativescript/hmac.js';
3
+ export { randomBytes, randomFill, randomFillSync, randomUUID, randomInt } from './browser/random.js';
4
+ export { timingSafeEqual } from './timing-safe-equal.js';
5
+ export { constants } from './constants.js';
6
+ export { createCipher, createCipheriv, createDecipher, createDecipheriv, getCiphers, createDiffieHellman, getDiffieHellman, DiffieHellman, DiffieHellmanGroup, createDiffieHellmanGroup, createECDH, getCurves, createSign, createVerify, Sign, Verify, sign, verify, pbkdf2, pbkdf2Sync, hkdf, hkdfSync, scrypt, scryptSync, ecdsaSign, ecdsaVerify, publicEncrypt, privateDecrypt, privateEncrypt, publicDecrypt, rsaPssSign, rsaPssVerify, rsaOaepEncrypt, rsaOaepDecrypt, mgf1, KeyObject, createSecretKey, createPublicKey, createPrivateKey, X509Certificate, } from './nativescript/stubs.js';
7
+ import { Hash, createHash, getHashes, hash } from './nativescript/hash.js';
8
+ import { Hmac, createHmac } from './nativescript/hmac.js';
9
+ import { randomBytes, randomFill, randomFillSync, randomUUID, randomInt } from './browser/random.js';
10
+ import { timingSafeEqual } from './timing-safe-equal.js';
11
+ import { createCipher, createCipheriv, createDecipher, createDecipheriv, getCiphers, createDiffieHellman, getDiffieHellman, DiffieHellman, DiffieHellmanGroup, createDiffieHellmanGroup, createECDH, getCurves, createSign, createVerify, Sign, Verify, sign, verify, pbkdf2, pbkdf2Sync, hkdf, hkdfSync, scrypt, scryptSync, ecdsaSign, ecdsaVerify, publicEncrypt, privateDecrypt, privateEncrypt, publicDecrypt, rsaPssSign, rsaPssVerify, rsaOaepEncrypt, rsaOaepDecrypt, mgf1, KeyObject, createSecretKey, createPublicKey, createPrivateKey, X509Certificate } from './nativescript/stubs.js';
12
+ declare const _default: {
13
+ Hash: typeof Hash;
14
+ createHash: typeof createHash;
15
+ getHashes: typeof getHashes;
16
+ hash: typeof hash;
17
+ Hmac: typeof Hmac;
18
+ createHmac: typeof createHmac;
19
+ randomBytes: typeof randomBytes;
20
+ randomFill: typeof randomFill;
21
+ randomFillSync: typeof randomFillSync;
22
+ randomUUID: typeof randomUUID;
23
+ randomInt: typeof randomInt;
24
+ timingSafeEqual: typeof timingSafeEqual;
25
+ constants: {
26
+ readonly RSA_PKCS1_PADDING: 1;
27
+ readonly RSA_NO_PADDING: 3;
28
+ readonly RSA_PKCS1_OAEP_PADDING: 4;
29
+ readonly RSA_PKCS1_PSS_PADDING: 6;
30
+ readonly DH_CHECK_P_NOT_SAFE_PRIME: 2;
31
+ readonly DH_CHECK_P_NOT_PRIME: 1;
32
+ readonly DH_UNABLE_TO_CHECK_GENERATOR: 4;
33
+ readonly DH_NOT_SUITABLE_GENERATOR: 8;
34
+ };
35
+ createCipher: typeof createCipher;
36
+ createCipheriv: typeof createCipheriv;
37
+ createDecipher: typeof createDecipher;
38
+ createDecipheriv: typeof createDecipheriv;
39
+ getCiphers: typeof getCiphers;
40
+ createDiffieHellman: typeof createDiffieHellman;
41
+ getDiffieHellman: typeof getDiffieHellman;
42
+ DiffieHellman: typeof DiffieHellman;
43
+ DiffieHellmanGroup: typeof DiffieHellmanGroup;
44
+ createDiffieHellmanGroup: typeof createDiffieHellmanGroup;
45
+ createECDH: typeof createECDH;
46
+ getCurves: typeof getCurves;
47
+ createSign: typeof createSign;
48
+ createVerify: typeof createVerify;
49
+ Sign: typeof Sign;
50
+ Verify: typeof Verify;
51
+ sign: typeof sign;
52
+ verify: typeof verify;
53
+ pbkdf2: typeof pbkdf2;
54
+ pbkdf2Sync: typeof pbkdf2Sync;
55
+ hkdf: typeof hkdf;
56
+ hkdfSync: typeof hkdfSync;
57
+ scrypt: typeof scrypt;
58
+ scryptSync: typeof scryptSync;
59
+ ecdsaSign: typeof ecdsaSign;
60
+ ecdsaVerify: typeof ecdsaVerify;
61
+ publicEncrypt: typeof publicEncrypt;
62
+ privateDecrypt: typeof privateDecrypt;
63
+ privateEncrypt: typeof privateEncrypt;
64
+ publicDecrypt: typeof publicDecrypt;
65
+ rsaPssSign: typeof rsaPssSign;
66
+ rsaPssVerify: typeof rsaPssVerify;
67
+ rsaOaepEncrypt: typeof rsaOaepEncrypt;
68
+ rsaOaepDecrypt: typeof rsaOaepDecrypt;
69
+ mgf1: typeof mgf1;
70
+ KeyObject: typeof KeyObject;
71
+ createSecretKey: typeof createSecretKey;
72
+ createPublicKey: typeof createPublicKey;
73
+ createPrivateKey: typeof createPrivateKey;
74
+ X509Certificate: typeof X509Certificate;
75
+ };
76
+ export default _default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gjsify/crypto",
3
- "version": "0.5.2",
3
+ "version": "0.6.1",
4
4
  "description": "Node.js crypto module for Gjs",
5
5
  "type": "module",
6
6
  "module": "lib/esm/index.js",
@@ -10,6 +10,10 @@
10
10
  "types": "./lib/types/index.d.ts",
11
11
  "default": "./lib/esm/index.js"
12
12
  },
13
+ "./nativescript": {
14
+ "types": "./lib/types/nativescript.d.ts",
15
+ "default": "./lib/esm/nativescript.js"
16
+ },
13
17
  "./browser": {
14
18
  "types": "./lib/types/browser.d.ts",
15
19
  "default": "./lib/esm/browser.js"
@@ -70,17 +74,18 @@
70
74
  "crypto"
71
75
  ],
72
76
  "devDependencies": {
73
- "@gjsify/cli": "^0.5.2",
74
- "@gjsify/unit": "^0.5.2",
77
+ "@gjsify/cli": "^0.6.1",
78
+ "@gjsify/unit": "^0.6.1",
75
79
  "@types/diffie-hellman": "^5.0.3",
76
80
  "@types/node": "^25.9.2",
77
81
  "typescript": "^6.0.3"
78
82
  },
79
83
  "dependencies": {
80
84
  "@girs/glib-2.0": "2.88.0-4.0.4",
81
- "@gjsify/buffer": "^0.5.2",
82
- "@gjsify/stream": "^0.5.2",
83
- "@gjsify/utils": "^0.5.2"
85
+ "@gjsify/buffer": "^0.6.1",
86
+ "@gjsify/stream": "^0.6.1",
87
+ "@gjsify/utils": "^0.6.1",
88
+ "@noble/hashes": "^1.5.0"
84
89
  },
85
90
  "gjsify": {
86
91
  "runtimes": {