@hpke/jose 0.0.1 → 0.1.0

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.
package/README.md CHANGED
@@ -44,7 +44,7 @@ Implements
44
44
  import { createJoseHpke3 } from "@hpke/jose";
45
45
 
46
46
  const enc0 = createJoseHpke3();
47
- const rkp = await enc0.suite.kem.generateKeyPair();
47
+ const rkp = await enc0.generateKemKeyPair();
48
48
 
49
49
  const plaintext = new TextEncoder().encode("Hello, JOSE-HPKE!");
50
50
  const jwe = await enc0.seal(rkp.publicKey, plaintext);
package/esm/src/alg.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { type AeadInterface } from "@hpke/core";
1
+ import type { AeadInterface } from "@hpke/core";
2
2
  /**
3
3
  * JOSE HPKE algorithm identifiers from draft-ietf-jose-hpke-encrypt-22.
4
4
  *
@@ -1 +1 @@
1
- {"version":3,"file":"alg.d.ts","sourceRoot":"","sources":["../../src/src/alg.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAIxD;;;;;;GAMG;AACH,eAAO,MAAM,WAAW;IACtB,6CAA6C;;IAE7C,6CAA6C;;IAE7C,6CAA6C;;IAE7C,8CAA8C;;IAE9C,mDAAmD;;IAEnD,4CAA4C;;IAE5C,iDAAiD;;IAEjD,6CAA6C;;IAE7C,6DAA6D;;IAE7D,6DAA6D;;IAE7D,6DAA6D;;IAE7D,8DAA8D;;IAE9D,4DAA4D;;IAE5D,6DAA6D;;CAErD,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,OAAO,WAAW,CAAC,CAAC;AAEzE,oDAAoD;AACpD,eAAO,MAAM,aAAa;IACxB,kBAAkB;;IAElB,kBAAkB;;CAEV,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,OAAO,aAAa,CAAC,CAAC;AAE/E;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,aAAa,GAAG,aAAa,CA2BxE;AAqBD,mDAAmD;AACnD,wBAAgB,eAAe,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAEzD;AAED,0DAA0D;AAC1D,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAEhE"}
1
+ {"version":3,"file":"alg.d.ts","sourceRoot":"","sources":["../../src/src/alg.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAIhD;;;;;;GAMG;AACH,eAAO,MAAM,WAAW;IACtB,6CAA6C;;IAE7C,6CAA6C;;IAE7C,6CAA6C;;IAE7C,8CAA8C;;IAE9C,mDAAmD;;IAEnD,4CAA4C;;IAE5C,iDAAiD;;IAEjD,6CAA6C;;IAE7C,6DAA6D;;IAE7D,6DAA6D;;IAE7D,6DAA6D;;IAE7D,8DAA8D;;IAE9D,4DAA4D;;IAE5D,6DAA6D;;CAErD,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,OAAO,WAAW,CAAC,CAAC;AAEzE,oDAAoD;AACpD,eAAO,MAAM,aAAa;IACxB,kBAAkB;;IAElB,kBAAkB;;CAEV,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,OAAO,aAAa,CAAC,CAAC;AAE/E;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,aAAa,GAAG,aAAa,CA2BxE;AAqBD,mDAAmD;AACnD,wBAAgB,eAAe,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAEzD;AAED,0DAA0D;AAC1D,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAEhE"}
package/esm/src/alg.js CHANGED
@@ -1,4 +1,3 @@
1
- import { AeadId } from "@hpke/core";
2
1
  import { JoseError } from "./errors.js";
3
2
  /**
4
3
  * JOSE HPKE algorithm identifiers from draft-ietf-jose-hpke-encrypt-22.
@@ -53,11 +52,11 @@ export function contentEncAlgFromAead(aead) {
53
52
  let alg;
54
53
  let keySize;
55
54
  switch (aead.id) {
56
- case AeadId.Aes128Gcm:
55
+ case 0x0001: // AeadId.Aes128Gcm
57
56
  alg = ContentEncAlg.A128GCM;
58
57
  keySize = 16;
59
58
  break;
60
- case AeadId.Aes256Gcm:
59
+ case 0x0002: // AeadId.Aes256Gcm
61
60
  alg = ContentEncAlg.A256GCM;
62
61
  keySize = 32;
63
62
  break;
@@ -25,6 +25,8 @@ export interface JoseEncrypt0Options {
25
25
  export interface JoseEncrypt0 {
26
26
  /** The underlying HPKE CipherSuite. */
27
27
  readonly suite: CipherSuite;
28
+ /** Generate a KEM key pair. */
29
+ generateKemKeyPair(): Promise<CryptoKeyPair>;
28
30
  /**
29
31
  * Encrypt a plaintext into a JWE Compact Serialization string.
30
32
  *
@@ -53,6 +55,7 @@ export declare class JoseEncrypt0Impl implements JoseEncrypt0 {
53
55
  private _suite;
54
56
  constructor(suite: CipherSuite, alg: JoseHpkeAlg);
55
57
  get suite(): CipherSuite;
58
+ generateKemKeyPair(): Promise<CryptoKeyPair>;
56
59
  seal(recipientPublicKey: CryptoKey, plaintext: Uint8Array, options?: JoseEncrypt0Options): Promise<string>;
57
60
  open(recipientKey: CryptoKeyPair | CryptoKey, jwe: string | JweFlattenedJson | JweGeneralJson, options?: JoseEncrypt0Options): Promise<Uint8Array>;
58
61
  importPublicJwk(jwk: JsonWebKey): Promise<CryptoKey>;
@@ -1 +1 @@
1
- {"version":3,"file":"encrypt0.d.ts","sourceRoot":"","sources":["../../src/src/encrypt0.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,OAAO,EAA0B,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AAGpE,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,cAAc,EAEpB,MAAM,oBAAoB,CAAC;AAS5B,qDAAqD;AACrD,MAAM,WAAW,mBAAmB;IAClC,8CAA8C;IAC9C,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB;;;OAGG;IACH,GAAG,CAAC,EAAE;QAAE,EAAE,EAAE,UAAU,CAAC;QAAC,GAAG,EAAE,UAAU,CAAA;KAAE,CAAC;IAC1C,yDAAyD;IACzD,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,uCAAuC;IACvC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAE5B;;;;OAIG;IACH,IAAI,CACF,kBAAkB,EAAE,SAAS,EAC7B,SAAS,EAAE,UAAU,EACrB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,MAAM,CAAC,CAAC;IAEnB;;;OAGG;IACH,IAAI,CACF,YAAY,EAAE,aAAa,GAAG,SAAS,EACvC,GAAG,EAAE,MAAM,GAAG,gBAAgB,GAAG,cAAc,EAC/C,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,UAAU,CAAC,CAAC;IAEvB;;;OAGG;IACH,eAAe,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAErD;;;OAGG;IACH,gBAAgB,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;CACvD;AAED,gBAAgB;AAChB,qBAAa,gBAAiB,YAAW,YAAY;IACnD,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,MAAM,CAAc;gBAEhB,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW;IAUhD,IAAI,KAAK,IAAI,WAAW,CAEvB;IAEK,IAAI,CACR,kBAAkB,EAAE,SAAS,EAC7B,SAAS,EAAE,UAAU,EACrB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,MAAM,CAAC;IAqCZ,IAAI,CACR,YAAY,EAAE,aAAa,GAAG,SAAS,EACvC,GAAG,EAAE,MAAM,GAAG,gBAAgB,GAAG,cAAc,EAC/C,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,UAAU,CAAC;IAqFhB,eAAe,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;IASpD,gBAAgB,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;CAQ5D"}
1
+ {"version":3,"file":"encrypt0.d.ts","sourceRoot":"","sources":["../../src/src/encrypt0.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,OAAO,EAA0B,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AAGpE,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,cAAc,EAEpB,MAAM,oBAAoB,CAAC;AAS5B,qDAAqD;AACrD,MAAM,WAAW,mBAAmB;IAClC,8CAA8C;IAC9C,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB;;;OAGG;IACH,GAAG,CAAC,EAAE;QAAE,EAAE,EAAE,UAAU,CAAC;QAAC,GAAG,EAAE,UAAU,CAAA;KAAE,CAAC;IAC1C,yDAAyD;IACzD,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,uCAAuC;IACvC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAE5B,+BAA+B;IAC/B,kBAAkB,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC;IAE7C;;;;OAIG;IACH,IAAI,CACF,kBAAkB,EAAE,SAAS,EAC7B,SAAS,EAAE,UAAU,EACrB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,MAAM,CAAC,CAAC;IAEnB;;;OAGG;IACH,IAAI,CACF,YAAY,EAAE,aAAa,GAAG,SAAS,EACvC,GAAG,EAAE,MAAM,GAAG,gBAAgB,GAAG,cAAc,EAC/C,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,UAAU,CAAC,CAAC;IAEvB;;;OAGG;IACH,eAAe,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAErD;;;OAGG;IACH,gBAAgB,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;CACvD;AAED,gBAAgB;AAChB,qBAAa,gBAAiB,YAAW,YAAY;IACnD,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,MAAM,CAAc;gBAEhB,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW;IAUhD,IAAI,KAAK,IAAI,WAAW,CAEvB;IAEK,kBAAkB,IAAI,OAAO,CAAC,aAAa,CAAC;IAI5C,IAAI,CACR,kBAAkB,EAAE,SAAS,EAC7B,SAAS,EAAE,UAAU,EACrB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,MAAM,CAAC;IAqCZ,IAAI,CACR,YAAY,EAAE,aAAa,GAAG,SAAS,EACvC,GAAG,EAAE,MAAM,GAAG,gBAAgB,GAAG,cAAc,EAC/C,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,UAAU,CAAC;IAqFhB,eAAe,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;IASpD,gBAAgB,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;CAQ5D"}
@@ -29,6 +29,9 @@ export class JoseEncrypt0Impl {
29
29
  get suite() {
30
30
  return this._suite;
31
31
  }
32
+ async generateKemKeyPair() {
33
+ return await this._suite.kem.generateKeyPair();
34
+ }
32
35
  async seal(recipientPublicKey, plaintext, options) {
33
36
  const info = options?.info ?? EMPTY;
34
37
  const senderParams = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hpke/jose",
3
- "version": "0.0.1",
3
+ "version": "0.1.0",
4
4
  "description": "JOSE-HPKE (draft-ietf-jose-hpke-encrypt) encryption for JWE Integrated and Key Encryption",
5
5
  "keywords": [
6
6
  "hpke",
@@ -39,14 +39,9 @@
39
39
  "node": ">=20.0.0"
40
40
  },
41
41
  "dependencies": {
42
- "@hpke/chacha20poly1305": "^1.8.0",
43
- "@hpke/core": "^1.9.0",
44
- "@hpke/dhkem-x448": "^1.8.0"
45
- },
46
- "devDependencies": {
47
- "@types/node": "^20.9.0",
48
- "@deno/shim-deno": "~0.18.0",
49
- "picocolors": "^1.0.0"
42
+ "@hpke/chacha20poly1305": "^1.8.1",
43
+ "@hpke/core": "^1.10.1",
44
+ "@hpke/dhkem-x448": "^1.8.1"
50
45
  },
51
46
  "_generatedBy": "dnt@dev"
52
- }
47
+ }