Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: add sd-jwt to issuer callback #86

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 5 additions & 2 deletions packages/callback-example/lib/IssuerCallback.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { securityLoader } from '@digitalcredentials/security-document-loader'
import vc from '@digitalcredentials/vc'
import { CredentialRequestV1_0_11 } from '@sphereon/oid4vci-common'
import { CredentialIssuanceInput } from '@sphereon/oid4vci-issuer'
import { W3CVerifiableCredential } from '@sphereon/ssi-types'
import { CompactSdJwtVc, W3CVerifiableCredential } from '@sphereon/ssi-types'

// Example on how to generate a did:key to issue a verifiable credential
export const generateDid = async () => {
Expand All @@ -20,7 +20,10 @@ export const getIssuerCallback = (credential: CredentialIssuanceInput, keyPair:
throw new Error('A credential needs to be provided')
}
// eslint-disable-next-line @typescript-eslint/no-unused-vars
return async (_opts: { credentialRequest?: CredentialRequestV1_0_11; credential?: CredentialIssuanceInput }): Promise<W3CVerifiableCredential> => {
return async (_opts: {
credentialRequest?: CredentialRequestV1_0_11
credential?: CredentialIssuanceInput
}): Promise<W3CVerifiableCredential | CompactSdJwtVc> => {
const documentLoader = securityLoader().build()
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const verificationKey: any = Array.from(keyPair.values())[0]
Expand Down
4 changes: 2 additions & 2 deletions packages/issuer/lib/VcIssuer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ import {
UniformCredentialRequest,
URIState,
} from '@sphereon/oid4vci-common'
import { CredentialMapper, W3CVerifiableCredential } from '@sphereon/ssi-types'
import { CompactSdJwtVc, CredentialMapper, W3CVerifiableCredential } from '@sphereon/ssi-types'
import { v4 } from 'uuid'

import { assertValidPinNumber, createCredentialOfferObject, createCredentialOfferURIFromObject } from './functions'
Expand Down Expand Up @@ -558,7 +558,7 @@ export class VcIssuer<DIDDoc extends object> {
format?: OID4VCICredentialFormat
},
issuerCallback?: CredentialSignerCallback<DIDDoc>,
): Promise<W3CVerifiableCredential> {
): Promise<W3CVerifiableCredential | CompactSdJwtVc> {
if ((!opts.credential && !opts.credentialRequest) || !this._credentialSignerCallback) {
throw new Error(ISSUER_CONFIG_ERROR)
}
Expand Down
10 changes: 8 additions & 2 deletions packages/issuer/lib/types/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,13 @@ import {
OID4VCICredentialFormat,
UniformCredentialRequest,
} from '@sphereon/oid4vci-common'
import { ICredential, SdJwtDecodedVerifiableCredentialPayload, SdJwtDisclosureFrame, W3CVerifiableCredential } from '@sphereon/ssi-types'
import {
CompactSdJwtVc,
ICredential,
SdJwtDecodedVerifiableCredentialPayload,
SdJwtDisclosureFrame,
W3CVerifiableCredential,
} from '@sphereon/ssi-types'

export type CredentialSignerCallback<T extends object> = (opts: {
credentialRequest: UniformCredentialRequest
Expand All @@ -18,7 +24,7 @@ export type CredentialSignerCallback<T extends object> = (opts: {
* An implementation that wants to look into the DIDDoc would have to do a cast in the signer callback implementation
*/
jwtVerifyResult: JwtVerifyResult<T>
}) => Promise<W3CVerifiableCredential>
}) => Promise<W3CVerifiableCredential | CompactSdJwtVc>

export interface CredentialDataSupplierArgs extends CNonceState {
credentialRequest: UniformCredentialRequest
Expand Down