| ADAPTER_FACTORIES |
Type : Record<string, KmsAdapterFactoryFn>
|
Default value : {
db: (_config, deps) =>
new DBKeyService(deps.cryptoService, deps.keyRepository),
vault: (config, deps) => {
const vaultUrl = config.vaultUrl as string;
const vaultToken = config.vaultToken as string;
if (!vaultUrl || !vaultToken) {
throw new Error(
'Vault KMS provider requires "vaultUrl" and "vaultToken" in kms.json.',
);
}
return new VaultKeyService(
deps.httpService,
vaultUrl,
vaultToken,
deps.cryptoService,
deps.keyRepository,
);
},
}
|
|
Registry of adapter factory functions, keyed by the provider type used in kms.json. To add a new KMS adapter:
|
| KMS_ADAPTER_TYPES |
Type : unknown
|
Default value : ["db", "vault"] as const
|
|
Supported KMS adapter type names. When adding a new adapter, add its type here and register its factory below. |
| logger |
Type : unknown
|
Default value : new Logger("KmsAdapterFactory")
|
| allRoles |
Type : []
|
Default value : [
Role.Tenants,
Role.IssuanceOffer,
Role.Issuances,
Role.PresentationRequest,
Role.Presentations,
Role.Clients,
Role.Registrar,
]
|
|
List of all roles |
| AppDataSource |
Type : unknown
|
Default value : new DataSource(dataSourceOptions)
|
| dataSourceOptions |
Type : DataSourceOptions
|
| dbType |
Type : unknown
|
Default value : process.env.DB_TYPE as "sqlite" | "postgres" | undefined
|
| BCRYPT_ROUNDS |
Type : number
|
Default value : 10
|
| CLIENTS_PROVIDER |
Type : string
|
Default value : "CLIENTS_PROVIDER"
|
| DEFAULT_LANG |
Type : string
|
Default value : "en"
|
|
Default language for trust list entries |
| ECDSA_P256 |
Type : object
|
Default value : {
name: "ECDSA",
namedCurve: "P-256",
hash: "SHA-256" as const,
}
|
| ED25519 |
Type : CryptoImplementation
|
Default value : {
alg: "EdDSA",
async generateKeyPair() {
const keyPair = await crypto.webcrypto.subtle.generateKey(
{
name: "EdDSA",
namedCurve: "Ed25519",
},
true,
["sign", "verify"],
);
const publicKey = await crypto.webcrypto.subtle.exportKey(
"jwk",
keyPair.publicKey,
);
const privateKey = await crypto.webcrypto.subtle.exportKey(
"jwk",
keyPair.privateKey,
);
return { publicKey, privateKey };
},
async getSigner(privateKeyJWK: object) {
const privateKey = await crypto.webcrypto.subtle.importKey(
"jwk",
privateKeyJWK,
{
name: "EdDSA",
namedCurve: "Ed25519",
},
false,
["sign"],
);
return async (data: string) => {
const signature = await crypto.webcrypto.subtle.sign(
"EdDSA",
privateKey,
new TextEncoder().encode(data),
);
return Buffer.from(signature).toString("base64url");
};
},
async getVerifier(publicKeyJWK: object) {
const publicKey = await crypto.webcrypto.subtle.importKey(
"jwk",
publicKeyJWK,
{
name: "EdDSA",
namedCurve: "Ed25519",
},
false,
["verify"],
);
return async (data: string, signatureBase64url: string) => {
const signature = Buffer.from(signatureBase64url, "base64url");
const isVerified = await crypto.webcrypto.subtle.verify(
"EdDSA",
publicKey,
signature,
new TextEncoder().encode(data),
);
return isVerified;
};
},
}
|
| ENCRYPTION_KEY_PROVIDER |
Type : string
|
Default value : "ENCRYPTION_KEY_PROVIDER"
|
|
Injection token for the encryption key provider. |
| FILE_STORAGE |
Type : unknown
|
Default value : Symbol("FILE_STORAGE")
|
| IS_PUBLIC_KEY |
Type : string
|
Default value : "isPublic"
|
| Public |
Type : unknown
|
Default value : () => SetMetadata(IS_PUBLIC_KEY, true)
|
| webCrypto |
Type : unknown
|
Default value : globalThis.crypto
|
| MSO_MDOC_FORMAT |
Type : MsoMdocFormatIdentifier
|
Default value : "mso_mdoc"
|
|
Format identifier constants for runtime checks |
| SD_JWT_DC_FORMAT |
Type : unknown
|
Default value : "dc+sd-jwt" as const
|
| Roles |
Type : unknown
|
Default value : (...roles: Role[]) => SetMetadata(ROLES_KEY, roles)
|
| ROLES_KEY |
Type : string
|
Default value : "roles"
|
| SESSION_LOGGER_KEY |
Type : string
|
Default value : "session-logger"
|
|
Key for session logger metadata. |
| SESSION_STATUS_CHANGED |
Type : string
|
Default value : "session.status.changed"
|