@credo-ts/openid4vc 0.6.0-pr-2195-20250226100854 → 0.6.0-pr-2195-20250321180923
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/build/openid4vc-holder/OpenId4VcHolderApi.d.ts +29 -29
- package/build/openid4vc-holder/OpenId4VcHolderApi.js +16 -16
- package/build/openid4vc-holder/OpenId4VcHolderApi.js.map +1 -1
- package/build/openid4vc-holder/OpenId4VcHolderModule.js +2 -2
- package/build/openid4vc-holder/OpenId4VcHolderModule.js.map +1 -1
- package/build/openid4vc-holder/OpenId4VciHolderService.d.ts +2 -2
- package/build/openid4vc-holder/OpenId4VciHolderService.js +6 -6
- package/build/openid4vc-holder/OpenId4VciHolderService.js.map +1 -1
- package/build/openid4vc-holder/OpenId4VciHolderServiceOptions.d.ts +1 -1
- package/build/openid4vc-holder/{OpenId4vcSiopHolderService.d.ts → OpenId4vpHolderService.d.ts} +21 -22
- package/build/openid4vc-holder/OpenId4vpHolderService.js +317 -0
- package/build/openid4vc-holder/OpenId4vpHolderService.js.map +1 -0
- package/build/openid4vc-holder/OpenId4vpHolderServiceOptions.d.ts +81 -0
- package/build/openid4vc-holder/{OpenId4vcSiopHolderServiceOptions.js → OpenId4vpHolderServiceOptions.js} +1 -1
- package/build/openid4vc-holder/OpenId4vpHolderServiceOptions.js.map +1 -0
- package/build/openid4vc-holder/index.d.ts +2 -2
- package/build/openid4vc-holder/index.js +2 -2
- package/build/openid4vc-holder/index.js.map +1 -1
- package/build/openid4vc-issuer/OpenId4VcIssuerEvents.d.ts +1 -1
- package/build/openid4vc-issuer/OpenId4VcIssuerModule.d.ts +1 -1
- package/build/openid4vc-issuer/OpenId4VcIssuerModuleConfig.d.ts +1 -1
- package/build/openid4vc-issuer/OpenId4VcIssuerService.d.ts +2 -3
- package/build/openid4vc-issuer/OpenId4VcIssuerService.js +13 -16
- package/build/openid4vc-issuer/OpenId4VcIssuerService.js.map +1 -1
- package/build/openid4vc-issuer/OpenId4VcIssuerServiceOptions.d.ts +8 -8
- package/build/openid4vc-issuer/repository/OpenId4VcIssuanceSessionRecord.d.ts +11 -1
- package/build/openid4vc-issuer/repository/OpenId4VcIssuanceSessionRecord.js +3 -0
- package/build/openid4vc-issuer/repository/OpenId4VcIssuanceSessionRecord.js.map +1 -1
- package/build/openid4vc-issuer/repository/OpenId4VcIssuanceSessionRepository.d.ts +1 -1
- package/build/openid4vc-issuer/repository/OpenId4VcIssuerRecord.d.ts +1 -1
- package/build/openid4vc-issuer/repository/OpenId4VcIssuerRecord.js +1 -1
- package/build/openid4vc-issuer/repository/OpenId4VcIssuerRecord.js.map +1 -1
- package/build/openid4vc-issuer/repository/OpenId4VcIssuerRepository.d.ts +1 -1
- package/build/openid4vc-issuer/router/accessTokenEndpoint.d.ts +2 -2
- package/build/openid4vc-issuer/router/authorizationChallengeEndpoint.js.map +1 -1
- package/build/openid4vc-issuer/router/credentialEndpoint.d.ts +1 -1
- package/build/openid4vc-issuer/router/credentialEndpoint.js +1 -0
- package/build/openid4vc-issuer/router/credentialEndpoint.js.map +1 -1
- package/build/openid4vc-issuer/router/credentialOfferEndpoint.d.ts +1 -1
- package/build/openid4vc-issuer/router/credentialOfferEndpoint.js +15 -0
- package/build/openid4vc-issuer/router/credentialOfferEndpoint.js.map +1 -1
- package/build/openid4vc-issuer/router/jwksEndpoint.d.ts +1 -1
- package/build/openid4vc-issuer/router/nonceEndpoint.d.ts +1 -1
- package/build/openid4vc-issuer/util/txCode.d.ts +1 -1
- package/build/openid4vc-verifier/OpenId4VcVerifierApi.d.ts +13 -26
- package/build/openid4vc-verifier/OpenId4VcVerifierApi.js +16 -25
- package/build/openid4vc-verifier/OpenId4VcVerifierApi.js.map +1 -1
- package/build/openid4vc-verifier/OpenId4VcVerifierEvents.d.ts +1 -1
- package/build/openid4vc-verifier/OpenId4VcVerifierModule.d.ts +1 -1
- package/build/openid4vc-verifier/OpenId4VcVerifierModule.js +4 -4
- package/build/openid4vc-verifier/OpenId4VcVerifierModule.js.map +1 -1
- package/build/openid4vc-verifier/OpenId4VcVerifierModuleConfig.d.ts +30 -7
- package/build/openid4vc-verifier/OpenId4VcVerifierModuleConfig.js +16 -12
- package/build/openid4vc-verifier/OpenId4VcVerifierModuleConfig.js.map +1 -1
- package/build/openid4vc-verifier/{OpenId4VcSiopVerifierService.d.ts → OpenId4VpVerifierService.d.ts} +17 -33
- package/build/openid4vc-verifier/OpenId4VpVerifierService.js +765 -0
- package/build/openid4vc-verifier/OpenId4VpVerifierService.js.map +1 -0
- package/build/openid4vc-verifier/OpenId4VpVerifierServiceOptions.d.ts +146 -0
- package/build/openid4vc-verifier/{OpenId4VcSiopVerifierServiceOptions.js → OpenId4VpVerifierServiceOptions.js} +1 -1
- package/build/openid4vc-verifier/OpenId4VpVerifierServiceOptions.js.map +1 -0
- package/build/openid4vc-verifier/index.d.ts +2 -2
- package/build/openid4vc-verifier/index.js +2 -2
- package/build/openid4vc-verifier/index.js.map +1 -1
- package/build/openid4vc-verifier/repository/OpenId4VcVerificationSessionRecord.d.ts +25 -9
- package/build/openid4vc-verifier/repository/OpenId4VcVerificationSessionRecord.js +21 -2
- package/build/openid4vc-verifier/repository/OpenId4VcVerificationSessionRecord.js.map +1 -1
- package/build/openid4vc-verifier/repository/OpenId4VcVerificationSessionRepository.d.ts +1 -1
- package/build/openid4vc-verifier/repository/OpenId4VcVerifierRecord.d.ts +3 -3
- package/build/openid4vc-verifier/repository/OpenId4VcVerifierRepository.d.ts +1 -1
- package/build/openid4vc-verifier/router/authorizationEndpoint.d.ts +2 -10
- package/build/openid4vc-verifier/router/authorizationEndpoint.js +94 -7
- package/build/openid4vc-verifier/router/authorizationEndpoint.js.map +1 -1
- package/build/openid4vc-verifier/router/authorizationRequestEndpoint.d.ts +2 -10
- package/build/openid4vc-verifier/router/authorizationRequestEndpoint.js +18 -6
- package/build/openid4vc-verifier/router/authorizationRequestEndpoint.js.map +1 -1
- package/build/shared/callbacks.d.ts +2 -2
- package/build/shared/callbacks.js +10 -7
- package/build/shared/callbacks.js.map +1 -1
- package/build/shared/models/index.d.ts +4 -4
- package/build/shared/models/index.js.map +1 -1
- package/build/shared/router/context.d.ts +2 -2
- package/build/shared/router/context.js +9 -5
- package/build/shared/router/context.js.map +1 -1
- package/build/shared/router/express.js +1 -2
- package/build/shared/router/express.js.map +1 -1
- package/build/shared/transactionData.d.ts +5 -0
- package/build/shared/transactionData.js +22 -0
- package/build/shared/transactionData.js.map +1 -0
- package/build/shared/utils.d.ts +1 -1
- package/build/shared/utils.js +3 -3
- package/build/shared/utils.js.map +1 -1
- package/package.json +7 -6
- package/build/openid4vc-holder/OpenId4vcSiopHolderService.js +0 -306
- package/build/openid4vc-holder/OpenId4vcSiopHolderService.js.map +0 -1
- package/build/openid4vc-holder/OpenId4vcSiopHolderServiceOptions.d.ts +0 -54
- package/build/openid4vc-holder/OpenId4vcSiopHolderServiceOptions.js.map +0 -1
- package/build/openid4vc-verifier/OpenId4VcSiopVerifierService.js +0 -806
- package/build/openid4vc-verifier/OpenId4VcSiopVerifierService.js.map +0 -1
- package/build/openid4vc-verifier/OpenId4VcSiopVerifierServiceOptions.d.ts +0 -93
- package/build/openid4vc-verifier/OpenId4VcSiopVerifierServiceOptions.js.map +0 -1
|
@@ -3,27 +3,36 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.configureAuthorizationRequestEndpoint = configureAuthorizationRequestEndpoint;
|
|
4
4
|
const core_1 = require("@credo-ts/core");
|
|
5
5
|
const router_1 = require("../../shared/router");
|
|
6
|
-
const OpenId4VcSiopVerifierService_1 = require("../OpenId4VcSiopVerifierService");
|
|
7
6
|
const OpenId4VcVerificationSessionState_1 = require("../OpenId4VcVerificationSessionState");
|
|
8
7
|
const OpenId4VcVerifierModuleConfig_1 = require("../OpenId4VcVerifierModuleConfig");
|
|
8
|
+
const OpenId4VpVerifierService_1 = require("../OpenId4VpVerifierService");
|
|
9
9
|
function configureAuthorizationRequestEndpoint(router, config) {
|
|
10
|
-
router.get((0, core_1.joinUriParts)(config.
|
|
10
|
+
router.get((0, core_1.joinUriParts)(config.authorizationRequestEndpoint, [':authorizationRequestId']), async (request, response, next) => {
|
|
11
11
|
const { agentContext, verifier } = (0, router_1.getRequestContext)(request);
|
|
12
12
|
if (!request.params.authorizationRequestId || typeof request.params.authorizationRequestId !== 'string') {
|
|
13
13
|
return (0, router_1.sendErrorResponse)(response, next, agentContext.config.logger, 400, 'invalid_request', 'Invalid authorization request url');
|
|
14
14
|
}
|
|
15
15
|
try {
|
|
16
|
-
const verifierService = agentContext.dependencyManager.resolve(
|
|
16
|
+
const verifierService = agentContext.dependencyManager.resolve(OpenId4VpVerifierService_1.OpenId4VpVerifierService);
|
|
17
17
|
const verifierConfig = agentContext.dependencyManager.resolve(OpenId4VcVerifierModuleConfig_1.OpenId4VcVerifierModuleConfig);
|
|
18
18
|
// We always use shortened URIs currently
|
|
19
19
|
const fullAuthorizationRequestUri = (0, core_1.joinUriParts)(verifierConfig.baseUrl, [
|
|
20
20
|
verifier.verifierId,
|
|
21
|
-
verifierConfig.authorizationRequestEndpoint
|
|
21
|
+
verifierConfig.authorizationRequestEndpoint,
|
|
22
22
|
request.params.authorizationRequestId,
|
|
23
23
|
]);
|
|
24
24
|
const [verificationSession] = await verifierService.findVerificationSessionsByQuery(agentContext, {
|
|
25
25
|
verifierId: verifier.verifierId,
|
|
26
|
-
|
|
26
|
+
$or: [
|
|
27
|
+
{
|
|
28
|
+
authorizationRequestId: request.params.authorizationRequestId,
|
|
29
|
+
},
|
|
30
|
+
// NOTE: this can soon be removed, authorization request id is cleaner,
|
|
31
|
+
// but only introduced since 0.6
|
|
32
|
+
{
|
|
33
|
+
authorizationRequestUri: fullAuthorizationRequestUri,
|
|
34
|
+
},
|
|
35
|
+
],
|
|
27
36
|
});
|
|
28
37
|
// Not all requets are signed, and those are not fetcheable
|
|
29
38
|
if (!verificationSession || !verificationSession.authorizationRequestJwt) {
|
|
@@ -35,6 +44,9 @@ function configureAuthorizationRequestEndpoint(router, config) {
|
|
|
35
44
|
].includes(verificationSession.state)) {
|
|
36
45
|
return (0, router_1.sendErrorResponse)(response, next, agentContext.config.logger, 400, 'invalid_request', 'Invalid state for authorization request');
|
|
37
46
|
}
|
|
47
|
+
if (verificationSession.expiresAt && Date.now() > verificationSession.expiresAt.getTime()) {
|
|
48
|
+
return (0, router_1.sendNotFoundResponse)(response, next, agentContext.config.logger, 'Session expired');
|
|
49
|
+
}
|
|
38
50
|
// It's okay to retrieve the offer multiple times. So we only update the state if it's not already retrieved
|
|
39
51
|
if (verificationSession.state !== OpenId4VcVerificationSessionState_1.OpenId4VcVerificationSessionState.RequestUriRetrieved) {
|
|
40
52
|
await verifierService.updateState(agentContext, verificationSession, OpenId4VcVerificationSessionState_1.OpenId4VcVerificationSessionState.RequestUriRetrieved);
|
|
@@ -43,7 +55,7 @@ function configureAuthorizationRequestEndpoint(router, config) {
|
|
|
43
55
|
next();
|
|
44
56
|
}
|
|
45
57
|
catch (error) {
|
|
46
|
-
return (0, router_1.
|
|
58
|
+
return (0, router_1.sendUnknownServerErrorResponse)(response, next, agentContext.config.logger, error);
|
|
47
59
|
}
|
|
48
60
|
});
|
|
49
61
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authorizationRequestEndpoint.js","sourceRoot":"","sources":["../../../src/openid4vc-verifier/router/authorizationRequestEndpoint.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"authorizationRequestEndpoint.js","sourceRoot":"","sources":["../../../src/openid4vc-verifier/router/authorizationRequestEndpoint.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { OpenId4VcIssuerRecord } from '../openid4vc-issuer/repository';
|
|
2
1
|
import type { AgentContext } from '@credo-ts/core';
|
|
3
|
-
import type { ClientAuthenticationCallback,
|
|
2
|
+
import type { ClientAuthenticationCallback, DecryptJweCallback, EncryptJweCallback, SignJwtCallback, VerifyJwtCallback } from '@openid4vc/oauth2';
|
|
3
|
+
import type { OpenId4VcIssuerRecord } from '../openid4vc-issuer/repository';
|
|
4
4
|
export declare function getOid4vcJwtVerifyCallback(agentContext: AgentContext, trustedCertificates?: string[]): VerifyJwtCallback;
|
|
5
5
|
export declare function getOid4vcEncryptJweCallback(agentContext: AgentContext): EncryptJweCallback;
|
|
6
6
|
export declare function getOid4vcDecryptJweCallback(agentContext: AgentContext): DecryptJweCallback;
|
|
@@ -20,7 +20,7 @@ function getOid4vcJwtVerifyCallback(agentContext, trustedCertificates) {
|
|
|
20
20
|
if (signer.method === 'jwk') {
|
|
21
21
|
return (0, core_1.getJwkFromJson)(signer.publicJwk);
|
|
22
22
|
}
|
|
23
|
-
|
|
23
|
+
if (signer.method === 'did') {
|
|
24
24
|
const key = await (0, utils_1.getKeyFromDid)(agentContext, signer.didUrl);
|
|
25
25
|
return (0, core_1.getJwkFromKey)(key);
|
|
26
26
|
}
|
|
@@ -70,9 +70,12 @@ function getOid4vcEncryptJweCallback(agentContext) {
|
|
|
70
70
|
}
|
|
71
71
|
function getOid4vcDecryptJweCallback(agentContext) {
|
|
72
72
|
return async (jwe, options) => {
|
|
73
|
-
const
|
|
74
|
-
const
|
|
75
|
-
|
|
73
|
+
const { header } = (0, oauth2_1.decodeJwtHeader)({ jwt: jwe });
|
|
74
|
+
const kid = options?.jwk?.kid ?? header.kid;
|
|
75
|
+
if (!kid) {
|
|
76
|
+
throw new core_1.CredoError('Uanbel to decrypt jwe. No kid or jwk found');
|
|
77
|
+
}
|
|
78
|
+
const key = core_1.Key.fromFingerprint(kid);
|
|
76
79
|
if (!agentContext.wallet.directDecryptCompactJweEcdhEs) {
|
|
77
80
|
throw new core_1.CredoError('Cannot decrypt Jarm Response, wallet does not support directDecryptCompactJweEcdhEs');
|
|
78
81
|
}
|
|
@@ -81,19 +84,19 @@ function getOid4vcDecryptJweCallback(agentContext) {
|
|
|
81
84
|
const decrypted = await agentContext.wallet.directDecryptCompactJweEcdhEs({ compactJwe: jwe, recipientKey: key });
|
|
82
85
|
decryptedPayload = core_1.TypedArrayEncoder.toUtf8String(decrypted.data);
|
|
83
86
|
}
|
|
84
|
-
catch (
|
|
87
|
+
catch (_error) {
|
|
85
88
|
return {
|
|
86
89
|
decrypted: false,
|
|
87
90
|
encryptionJwk: options?.jwk,
|
|
88
91
|
payload: undefined,
|
|
89
|
-
header
|
|
92
|
+
header,
|
|
90
93
|
};
|
|
91
94
|
}
|
|
92
95
|
return {
|
|
93
96
|
decrypted: true,
|
|
94
97
|
decryptionJwk: (0, core_1.getJwkFromKey)(key).toJson(),
|
|
95
98
|
payload: decryptedPayload,
|
|
96
|
-
header
|
|
99
|
+
header,
|
|
97
100
|
};
|
|
98
101
|
};
|
|
99
102
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callbacks.js","sourceRoot":"","sources":["../../src/shared/callbacks.ts"],"names":[],"mappings":";;AA6BA,
|
|
1
|
+
{"version":3,"file":"callbacks.js","sourceRoot":"","sources":["../../src/shared/callbacks.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { AccessTokenResponse } from '@openid4vc/oauth2';
|
|
2
2
|
import type { CredentialConfigurationSupported, CredentialConfigurationSupportedWithFormats, CredentialIssuerMetadata, CredentialIssuerMetadataDisplayEntry, CredentialOfferObject, CredentialOfferPreAuthorizedCodeGrantTxCode, CredentialRequest, CredentialRequestFormatSpecific, CredentialRequestWithFormats, IssuerMetadataResult, ParseCredentialRequestReturn } from '@openid4vc/openid4vci';
|
|
3
|
-
import type {
|
|
3
|
+
import type { Openid4vpAuthorizationRequest, Openid4vpAuthorizationRequestDcApi, Openid4vpAuthorizationResponse, ResolvedOpenid4vpAuthorizationRequest } from '@openid4vc/openid4vp';
|
|
4
4
|
export { authorizationCodeGrantIdentifier, preAuthorizedCodeGrantIdentifier } from '@openid4vc/oauth2';
|
|
5
5
|
export { Openid4vpAuthorizationRequest } from '@openid4vc/openid4vp';
|
|
6
6
|
export type OpenId4VciCredentialConfigurationSupportedWithFormats = CredentialConfigurationSupportedWithFormats;
|
|
@@ -17,9 +17,9 @@ export type OpenId4VciCredentialIssuerMetadataDisplay = CredentialIssuerMetadata
|
|
|
17
17
|
export type OpenId4VciCredentialRequest = CredentialRequest;
|
|
18
18
|
export type OpenId4VciCredentialRequestWithFormats = CredentialRequestWithFormats;
|
|
19
19
|
export type OpenId4VciCredentialOfferPayload = CredentialOfferObject;
|
|
20
|
-
export type
|
|
21
|
-
export type
|
|
22
|
-
export type
|
|
20
|
+
export type OpenId4VpVerifiedAuthorizationRequest = ResolvedOpenid4vpAuthorizationRequest;
|
|
21
|
+
export type OpenId4VpAuthorizationRequestPayload = Openid4vpAuthorizationRequest | Openid4vpAuthorizationRequestDcApi;
|
|
22
|
+
export type OpenId4VpAuthorizationResponsePayload = Openid4vpAuthorizationResponse;
|
|
23
23
|
export * from './CredentialHolderBinding';
|
|
24
24
|
export * from './OpenId4VciAuthorizationServerConfig';
|
|
25
25
|
export * from './OpenId4VciCredentialFormatProfile';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/shared/models/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAqBA,4CAAsG;AAA7F,0HAAA,gCAAgC,OAAA;AAAE,0HAAA,gCAAgC,OAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/shared/models/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAqBA,4CAAsG;AAA7F,0HAAA,gCAAgC,OAAA;AAAE,0HAAA,gCAAgC,OAAA;AAgC3E,4DAAyC;AACzC,wEAAqD;AACrD,sEAAmD;AACnD,uDAAoC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { AgentContext, Logger } from '@credo-ts/core';
|
|
2
2
|
import type { Oauth2ErrorCodes, Oauth2ServerErrorResponseError } from '@openid4vc/oauth2';
|
|
3
|
-
import type {
|
|
3
|
+
import type { NextFunction, Request, Response } from 'express';
|
|
4
4
|
import { Oauth2ResourceUnauthorizedError } from '@openid4vc/oauth2';
|
|
5
5
|
export interface OpenId4VcRequest<RC extends Record<string, unknown> = Record<string, never>> extends Request {
|
|
6
6
|
requestContext?: RC & OpenId4VcRequestContext;
|
|
@@ -12,6 +12,6 @@ export declare function sendUnauthorizedError(response: Response, next: NextFunc
|
|
|
12
12
|
export declare function sendOauth2ErrorResponse(response: Response, next: NextFunction, logger: Logger, error: Oauth2ServerErrorResponseError): void;
|
|
13
13
|
export declare function sendUnknownServerErrorResponse(response: Response, next: NextFunction, logger: Logger, error: unknown): void;
|
|
14
14
|
export declare function sendNotFoundResponse(response: Response, next: NextFunction, logger: Logger, internalReason: string): void;
|
|
15
|
-
export declare function sendErrorResponse(response: Response, next: NextFunction, logger: Logger, status: number,
|
|
15
|
+
export declare function sendErrorResponse(response: Response, next: NextFunction, logger: Logger, status: number, errorCode: Oauth2ErrorCodes | string, errorDescription?: string, additionalPayload?: Record<string, unknown>, error?: Error): void;
|
|
16
16
|
export declare function sendJsonResponse(response: Response, next: NextFunction, body: any, contentType?: string, status?: number): void;
|
|
17
17
|
export declare function getRequestContext<T extends OpenId4VcRequest<any>>(request: T): NonNullable<T['requestContext']>;
|
|
@@ -34,7 +34,7 @@ function sendOauth2ErrorResponse(response, next, logger, error) {
|
|
|
34
34
|
next(error);
|
|
35
35
|
}
|
|
36
36
|
function sendUnknownServerErrorResponse(response, next, logger, error) {
|
|
37
|
-
logger.error(
|
|
37
|
+
logger.error('[OID4VC] Sending unknown server error response', {
|
|
38
38
|
error,
|
|
39
39
|
});
|
|
40
40
|
response.status(500).json({
|
|
@@ -48,8 +48,12 @@ function sendNotFoundResponse(response, next, logger, internalReason) {
|
|
|
48
48
|
response.status(404).send();
|
|
49
49
|
next(new core_1.CredoError(internalReason));
|
|
50
50
|
}
|
|
51
|
-
function sendErrorResponse(response, next, logger, status,
|
|
52
|
-
const body = {
|
|
51
|
+
function sendErrorResponse(response, next, logger, status, errorCode, errorDescription, additionalPayload, error) {
|
|
52
|
+
const body = {
|
|
53
|
+
error: errorCode,
|
|
54
|
+
error_description: errorDescription,
|
|
55
|
+
...additionalPayload,
|
|
56
|
+
};
|
|
53
57
|
logger.warn(`[OID4VC] Sending error response: ${JSON.stringify(body)}`, {
|
|
54
58
|
error,
|
|
55
59
|
});
|
|
@@ -58,7 +62,7 @@ function sendErrorResponse(response, next, logger, status, message, error, addit
|
|
|
58
62
|
next(throwError);
|
|
59
63
|
}
|
|
60
64
|
function sendJsonResponse(response, next,
|
|
61
|
-
//
|
|
65
|
+
// biome-ignore lint/suspicious/noExplicitAny: <explanation>
|
|
62
66
|
body, contentType, status) {
|
|
63
67
|
response
|
|
64
68
|
.setHeader('Content-Type', contentType ?? 'application/json')
|
|
@@ -66,7 +70,7 @@ body, contentType, status) {
|
|
|
66
70
|
.send(JSON.stringify(body));
|
|
67
71
|
next();
|
|
68
72
|
}
|
|
69
|
-
//
|
|
73
|
+
// biome-ignore lint/suspicious/noExplicitAny: <explanation>
|
|
70
74
|
function getRequestContext(request) {
|
|
71
75
|
const requestContext = request.requestContext;
|
|
72
76
|
if (!requestContext)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/shared/router/context.ts"],"names":[],"mappings":";;AAeA,sDAyBC;AAED,0DAYC;AACD,wEAYC;AAED,oDAKC;AAED,
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/shared/router/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,11 +4,10 @@ exports.importExpress = importExpress;
|
|
|
4
4
|
function importExpress() {
|
|
5
5
|
try {
|
|
6
6
|
// NOTE: 'express' is added as a peer-dependency, and is required when using this module
|
|
7
|
-
// eslint-disable-next-line import/no-extraneous-dependencies, @typescript-eslint/no-var-requires
|
|
8
7
|
const express = require('express');
|
|
9
8
|
return express;
|
|
10
9
|
}
|
|
11
|
-
catch (
|
|
10
|
+
catch (_error) {
|
|
12
11
|
throw new Error('Express must be installed as a peer dependency');
|
|
13
12
|
}
|
|
14
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"express.js","sourceRoot":"","sources":["../../../src/shared/router/express.ts"],"names":[],"mappings":";;AAEA,
|
|
1
|
+
{"version":3,"file":"express.js","sourceRoot":"","sources":["../../../src/shared/router/express.ts"],"names":[],"mappings":";;AAEA,sCAQC;AARD,SAAgB,aAAa;IAC3B,IAAI,CAAC;QACH,wFAAwF;QACxF,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAmB,CAAA;QACpD,OAAO,OAAO,CAAA;IAChB,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAA;IACnE,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getSdJwtVcTransactionDataHashes = getSdJwtVcTransactionDataHashes;
|
|
4
|
+
const core_1 = require("@credo-ts/core");
|
|
5
|
+
function getSdJwtVcTransactionDataHashes(sdJwtVc) {
|
|
6
|
+
if (!sdJwtVc.kbJwt) {
|
|
7
|
+
return undefined;
|
|
8
|
+
}
|
|
9
|
+
const transactionDataHashes = sdJwtVc.kbJwt.payload.transaction_data_hashes;
|
|
10
|
+
if (!Array.isArray(transactionDataHashes) || !transactionDataHashes.every((hash) => typeof hash === 'string')) {
|
|
11
|
+
throw new core_1.CredoError("Property 'transaction_data_hashes' in SD-JWT VC KB-JWT payload must be an array of strings");
|
|
12
|
+
}
|
|
13
|
+
const transactionDataHashesAlg = sdJwtVc.kbJwt.payload.transaction_data_hashes_alg;
|
|
14
|
+
if (typeof transactionDataHashesAlg !== 'string' && transactionDataHashes !== undefined) {
|
|
15
|
+
throw new core_1.CredoError("Property 'transaction_data_hashes_alg' in SD-JWT VC KB-JWT payload is not of string");
|
|
16
|
+
}
|
|
17
|
+
return {
|
|
18
|
+
transaction_data_hashes: transactionDataHashes,
|
|
19
|
+
transaction_data_hashes_alg: transactionDataHashesAlg,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=transactionData.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transactionData.js","sourceRoot":"","sources":["../../src/shared/transactionData.ts"],"names":[],"mappings":";;AAEA,0EAmBC;AArBD,yCAAoD;AAEpD,SAAgB,+BAA+B,CAAC,OAAgB;IAC9D,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,MAAM,qBAAqB,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,uBAAuB,CAAA;IAC3E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,EAAE,CAAC;QAC9G,MAAM,IAAI,iBAAU,CAAC,4FAA4F,CAAC,CAAA;IACpH,CAAC;IAED,MAAM,wBAAwB,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,2BAA2B,CAAA;IAClF,IAAI,OAAO,wBAAwB,KAAK,QAAQ,IAAI,qBAAqB,KAAK,SAAS,EAAE,CAAC;QACxF,MAAM,IAAI,iBAAU,CAAC,qFAAqF,CAAC,CAAA;IAC7G,CAAC;IAED,OAAO;QACL,uBAAuB,EAAE,qBAAqB;QAC9C,2BAA2B,EAAE,wBAA8C;KAC5E,CAAA;AACH,CAAC"}
|
package/build/shared/utils.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { OpenId4VcJwtIssuer } from './models';
|
|
2
1
|
import type { AgentContext, DidPurpose, JwaSignatureAlgorithm, Key } from '@credo-ts/core';
|
|
3
2
|
import type { JwtSigner, JwtSignerX5c } from '@openid4vc/oauth2';
|
|
3
|
+
import type { OpenId4VcJwtIssuer } from './models';
|
|
4
4
|
/**
|
|
5
5
|
* Returns the JWA Signature Algorithms that are supported by the wallet.
|
|
6
6
|
*
|
package/build/shared/utils.js
CHANGED
|
@@ -46,7 +46,7 @@ async function requestSignerToJwtIssuer(agentContext, requestSigner) {
|
|
|
46
46
|
alg,
|
|
47
47
|
};
|
|
48
48
|
}
|
|
49
|
-
|
|
49
|
+
if (requestSigner.method === 'x5c') {
|
|
50
50
|
const leafCertificate = core_1.X509Service.getLeafCertificate(agentContext, {
|
|
51
51
|
certificateChain: requestSigner.x5c,
|
|
52
52
|
});
|
|
@@ -74,7 +74,7 @@ async function requestSignerToJwtIssuer(agentContext, requestSigner) {
|
|
|
74
74
|
alg,
|
|
75
75
|
};
|
|
76
76
|
}
|
|
77
|
-
|
|
77
|
+
if (requestSigner.method === 'jwk') {
|
|
78
78
|
const alg = requestSigner.jwk.supportedSignatureAlgorithms[0];
|
|
79
79
|
if (!alg) {
|
|
80
80
|
throw new core_1.CredoError(`No supported signature algorithms for key type: '${requestSigner.jwk.keyType}'`);
|
|
@@ -109,7 +109,7 @@ function parseIfJson(input) {
|
|
|
109
109
|
// Try to parse the string as JSON
|
|
110
110
|
return JSON.parse(input);
|
|
111
111
|
}
|
|
112
|
-
catch (
|
|
112
|
+
catch (_error) {
|
|
113
113
|
/* empty */
|
|
114
114
|
}
|
|
115
115
|
return input;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/shared/utils.ts"],"names":[],"mappings":";;AAuBA,gFAaC;AAED,sCAUC;AAED,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/shared/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@credo-ts/openid4vc",
|
|
3
3
|
"main": "build/index",
|
|
4
4
|
"types": "build/index",
|
|
5
|
-
"version": "0.6.0-pr-2195-
|
|
5
|
+
"version": "0.6.0-pr-2195-20250321180923",
|
|
6
6
|
"files": [
|
|
7
7
|
"build"
|
|
8
8
|
],
|
|
@@ -20,10 +20,11 @@
|
|
|
20
20
|
"class-transformer": "^0.5.1",
|
|
21
21
|
"rxjs": "^7.8.0",
|
|
22
22
|
"zod": "^3.23.8",
|
|
23
|
-
"@openid4vc/openid4vci": "0.3.0-alpha-
|
|
24
|
-
"@openid4vc/oauth2": "0.3.0-alpha-
|
|
25
|
-
"@openid4vc/openid4vp": "0.3.0-alpha-
|
|
26
|
-
"@
|
|
23
|
+
"@openid4vc/openid4vci": "0.3.0-alpha-20250321150652",
|
|
24
|
+
"@openid4vc/oauth2": "0.3.0-alpha-20250321150652",
|
|
25
|
+
"@openid4vc/openid4vp": "0.3.0-alpha-20250321150652",
|
|
26
|
+
"@openid4vc/utils": "0.3.0-alpha-20250321150652",
|
|
27
|
+
"@credo-ts/core": "0.6.0-pr-2195-20250321180923"
|
|
27
28
|
},
|
|
28
29
|
"devDependencies": {
|
|
29
30
|
"@types/express": "^4.17.21",
|
|
@@ -31,7 +32,7 @@
|
|
|
31
32
|
"nock": "^14.0.0-beta.19",
|
|
32
33
|
"rimraf": "^4.4.0",
|
|
33
34
|
"typescript": "~5.5.2",
|
|
34
|
-
"@credo-ts/tenants": "0.6.0-pr-2195-
|
|
35
|
+
"@credo-ts/tenants": "0.6.0-pr-2195-20250321180923"
|
|
35
36
|
},
|
|
36
37
|
"scripts": {
|
|
37
38
|
"build": "pnpm run clean && pnpm run compile",
|