@peac/protocol 0.15.3 → 0.16.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.
- package/dist/index.cjs +86 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +86 -3
- package/dist/index.mjs.map +1 -1
- package/dist/replay-guard.d.ts +55 -0
- package/dist/replay-guard.d.ts.map +1 -0
- package/dist/verify-local-wire01.d.ts.map +1 -1
- package/dist/verify-local.cjs +11 -2
- package/dist/verify-local.cjs.map +1 -1
- package/dist/verify-local.d.ts +1 -1
- package/dist/verify-local.d.ts.map +1 -1
- package/dist/verify-local.mjs +11 -2
- package/dist/verify-local.mjs.map +1 -1
- package/package.json +4 -4
package/dist/verify-local.d.ts
CHANGED
|
@@ -15,7 +15,7 @@ import type { PolicyBindingStatus } from './verifier-types';
|
|
|
15
15
|
* so callers can distinguish key-injection, compression, and crit attacks from
|
|
16
16
|
* ordinary format errors (v0.12.0-preview.1).
|
|
17
17
|
*/
|
|
18
|
-
export type VerifyLocalErrorCode = 'E_INVALID_SIGNATURE' | 'E_INVALID_FORMAT' | 'E_CONSTRAINT_VIOLATION' | 'E_EXPIRED' | 'E_NOT_YET_VALID' | 'E_INVALID_ISSUER' | 'E_INVALID_AUDIENCE' | 'E_INVALID_SUBJECT' | 'E_INVALID_RECEIPT_ID' | 'E_MISSING_EXP' | 'E_WIRE_VERSION_MISMATCH' | 'E_UNSUPPORTED_WIRE_VERSION' | 'E_OCCURRED_AT_FUTURE' | 'E_JWS_EMBEDDED_KEY' | 'E_JWS_CRIT_REJECTED' | 'E_JWS_MISSING_KID' | 'E_JWS_B64_REJECTED' | 'E_JWS_ZIP_REJECTED' | 'E_POLICY_BINDING_FAILED' | 'E_EXTENSION_GROUP_REQUIRED' | 'E_EXTENSION_GROUP_MISMATCH' | 'E_INTERNAL';
|
|
18
|
+
export type VerifyLocalErrorCode = 'E_INVALID_SIGNATURE' | 'E_INVALID_FORMAT' | 'E_CONSTRAINT_VIOLATION' | 'E_EXPIRED' | 'E_NOT_YET_VALID' | 'E_INVALID_ISSUER' | 'E_INVALID_AUDIENCE' | 'E_INVALID_SUBJECT' | 'E_INVALID_RECEIPT_ID' | 'E_MISSING_EXP' | 'E_WIRE_VERSION_MISMATCH' | 'E_UNSUPPORTED_WIRE_VERSION' | 'E_OCCURRED_AT_FUTURE' | 'E_JWS_EMBEDDED_KEY' | 'E_JWS_CRIT_REJECTED' | 'E_JWS_MISSING_KID' | 'E_JWS_B64_REJECTED' | 'E_JWS_ZIP_REJECTED' | 'E_POLICY_BINDING_FAILED' | 'E_EXTENSION_GROUP_REQUIRED' | 'E_EXTENSION_GROUP_MISMATCH' | 'E_IJSON_DUPLICATE_MEMBER_NAME' | 'E_IJSON_NUMBER_OUT_OF_RANGE' | 'E_IJSON_INVALID_STRING' | 'E_INTERNAL';
|
|
19
19
|
/**
|
|
20
20
|
* Options for local verification
|
|
21
21
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify-local.d.ts","sourceRoot":"","sources":["../src/verify-local.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,sBAAsB,EAAE,KAAK,mBAAmB,EAAQ,MAAM,cAAc,CAAC;AAE3F,OAAO,EAGL,KAAK,YAAY,EAYlB,MAAM,cAAc,CAAC;AActB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AA8B5D;;;;;;;GAOG;AACH,MAAM,MAAM,oBAAoB,GAC5B,qBAAqB,GACrB,kBAAkB,GAClB,wBAAwB,GACxB,WAAW,GACX,iBAAiB,GACjB,kBAAkB,GAClB,oBAAoB,GACpB,mBAAmB,GACnB,sBAAsB,GACtB,eAAe,GACf,yBAAyB,GACzB,4BAA4B,GAC5B,sBAAsB,GAEtB,oBAAoB,GACpB,qBAAqB,GACrB,mBAAmB,GACnB,oBAAoB,GACpB,oBAAoB,GAEpB,yBAAyB,GAEzB,4BAA4B,GAC5B,4BAA4B,
|
|
1
|
+
{"version":3,"file":"verify-local.d.ts","sourceRoot":"","sources":["../src/verify-local.ts"],"names":[],"mappings":"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"}
|
package/dist/verify-local.mjs
CHANGED
|
@@ -916,7 +916,14 @@ var JOSE_CODE_MAP = {
|
|
|
916
916
|
CRYPTO_JWS_CRIT_REJECTED: "E_JWS_CRIT_REJECTED",
|
|
917
917
|
CRYPTO_JWS_MISSING_KID: "E_JWS_MISSING_KID",
|
|
918
918
|
CRYPTO_JWS_B64_REJECTED: "E_JWS_B64_REJECTED",
|
|
919
|
-
CRYPTO_JWS_ZIP_REJECTED: "E_JWS_ZIP_REJECTED"
|
|
919
|
+
CRYPTO_JWS_ZIP_REJECTED: "E_JWS_ZIP_REJECTED",
|
|
920
|
+
// Raw-input I-JSON gate (RFC 7493): specific E_IJSON_* codes so callers can
|
|
921
|
+
// distinguish duplicate member names, out-of-range numbers, and invalid
|
|
922
|
+
// strings from ordinary format errors. (Generic JSON syntax errors from the
|
|
923
|
+
// gate use CRYPTO_INVALID_JWS_FORMAT -> E_INVALID_FORMAT via FORMAT_ERROR_CODES.)
|
|
924
|
+
CRYPTO_IJSON_DUPLICATE_MEMBER_NAME: "E_IJSON_DUPLICATE_MEMBER_NAME",
|
|
925
|
+
CRYPTO_IJSON_NUMBER_OUT_OF_RANGE: "E_IJSON_NUMBER_OUT_OF_RANGE",
|
|
926
|
+
CRYPTO_IJSON_INVALID_STRING: "E_IJSON_INVALID_STRING"
|
|
920
927
|
};
|
|
921
928
|
var MAX_PARSE_ISSUES = 25;
|
|
922
929
|
function sanitizeParseIssues(issues) {
|
|
@@ -940,10 +947,12 @@ async function verifyLocal(jws, publicKey, options = {}) {
|
|
|
940
947
|
try {
|
|
941
948
|
const result = await defaultCodec.decode(jws, publicKey);
|
|
942
949
|
if (!result.valid) {
|
|
950
|
+
const signatureBytes = ed25519SignatureByteLength(jws);
|
|
951
|
+
const invalidLength = signatureBytes !== null && signatureBytes !== ED25519_SIGNATURE_BYTES;
|
|
943
952
|
return {
|
|
944
953
|
valid: false,
|
|
945
954
|
code: "E_INVALID_SIGNATURE",
|
|
946
|
-
message: "Ed25519 signature verification failed"
|
|
955
|
+
message: invalidLength ? "Ed25519 signature has invalid length" : "Ed25519 signature verification failed"
|
|
947
956
|
};
|
|
948
957
|
}
|
|
949
958
|
const accumulatedWarnings = [];
|