CryptoService
Class: CryptoService<T>
Defined in: packages/core/src/services/cryptoservice.service.ts:402
Webda Modda
Extends
Service<T>
Type Parameters
T
T extends CryptoServiceParameters = CryptoServiceParameters
Implements
Constructors
Constructor
new CryptoService<
T>(name,params):CryptoService<T>
Defined in: packages/core/src/services/service.ts:191
Service
Parameters
name
string
The name of the service
params
T
The parameters block define in the configuration file
Returns
CryptoService<T>
Inherited from
Properties
_compiledCapabilities
protected_compiledCapabilities:Record<string,any> ={}
Defined in: packages/core/src/services/iservice.ts:49
Capabilities detected at compile-time from @WebdaCapability-tagged interfaces.
Populated during Service.resolve by reading the service's entry in
webda.module.json. Each key is a capability name (e.g., "request-filter"),
and the value is an empty object {} by default. Override getCapabilities
to provide capability-specific configuration or to conditionally disable capabilities.
See
getCapabilities
Inherited from
[WEBDA_EVENTS]
[WEBDA_EVENTS]:
object
Defined in: packages/core/src/services/service.ts:165
Set the Webda events here
Inherited from
age
age:
number
Defined in: packages/core/src/services/cryptoservice.service.ts:459
current
current:
string
Defined in: packages/core/src/services/cryptoservice.service.ts:458
currentAsymetricKey
currentAsymetricKey:
object
Defined in: packages/core/src/services/cryptoservice.service.ts:457
privateKey
privateKey:
string
publicKey
publicKey:
string
currentSymetricKey
currentSymetricKey:
string
Defined in: packages/core/src/services/cryptoservice.service.ts:456
jwks
jwks:
object={}
Defined in: packages/core/src/services/cryptoservice.service.ts:466
JWKS cache: public JWK of each key id, null when the key cannot be exported as a JWK
Index Signature
[key: string]: JsonWebKey
keys
keys:
object
Defined in: packages/core/src/services/cryptoservice.service.ts:460
Index Signature
[key: string]: KeysDefinition
keysFileSignature?
protectedoptionalkeysFileSignature?:string
Defined in: packages/core/src/services/cryptoservice.service.ts:472
Modification time, size and inode of the keys file last read, to reload it only when it changes
logger
protectedlogger:Logger
Defined in: packages/core/src/services/service.ts:178
Logger with class context
Inherited from
metrics?
protectedoptionalmetrics?:object
Defined in: packages/core/src/services/service.ts:182
Get metrics
Inherited from
name
readonlyname:string
Defined in: packages/core/src/services/iservice.ts:26
Inherited from
parameters
readonlyparameters:T
Defined in: packages/core/src/services/iservice.ts:27
Inherited from
createConfiguration?
staticoptionalcreateConfiguration?: (params) =>any
Defined in: packages/core/src/services/iservice.ts:32
Create configuration set by the application on load
Parameters
params
any
Returns
any
Inherited from
filterConfiguration?
staticoptionalfilterConfiguration?: (params) =>any
Defined in: packages/core/src/services/iservice.ts:37
Create configuration set by the application on load
Parameters
params
any
Returns
any
Inherited from
Parameters
staticParameters: typeofServiceParameters=ServiceParameters
Defined in: packages/core/src/services/service.ts:161
Service parameters
Inherited from
Methods
__clean()
abstract__clean():Promise<void>
Defined in: packages/core/src/services/service.ts:494
Clean the service data, can only be used in test mode
Returns
Promise<void>
Inherited from
addListener()
addListener<
Key>(eventName,listener):this
Defined in: packages/core/src/events/asynceventemitter.ts:83
Type Parameters
Key
Key extends never
Parameters
eventName
Key
the event name
listener
(event) => void | Promise<void>
the event listener
Returns
this
this for chaining
See
EventEmitter.addListener
Inherited from
addRoute()
protectedaddRoute(url,methods,executer,openapi?,override?):void
Defined in: packages/core/src/services/service.ts:386
Add a route dynamicaly
Parameters
url
string
of the route can contains dynamic part like {uuid}
methods
the HTTP methods
executer
Function
Method to execute for this route
openapi?
the OpenAPI specification
override?
boolean = false
whether to override existing
Returns
void
Inherited from
authorizeClientEvent()
authorizeClientEvent(
_event,_context):boolean
Defined in: packages/core/src/services/service.ts:339
Authorize a public event subscription
Parameters
_event
string
the event name
_context
the execution context
Returns
boolean
true if the condition is met
Inherited from
checkKey()
checkKey(
keyId):Promise<boolean>
Defined in: packages/core/src/services/cryptoservice.service.ts:778
Parameters
keyId
string
the key identifier
Returns
Promise<boolean>
true if the condition is met
computeParameters()
computeParameters():
void
Defined in: packages/core/src/services/service.ts:200
Used to compute or derivate input parameter to attribute
Returns
void
Deprecated
Inherited from
decrypt()
decrypt(
token):Promise<any>
Defined in: packages/core/src/services/cryptoservice.service.ts:1520
Decrypt data
Parameters
token
string
the token
Returns
Promise<any>
the result
Implementation of
emit()
emit<
Key>(event,data):Promise<void>
Defined in: packages/core/src/services/service.ts:475
Emit the event with data and wait for Promise to finish if listener returned a Promise
Type Parameters
Key
Key extends never
Parameters
event
Key
the event name
data
object[Key]
the data to process
Returns
Promise<void>
Inherited from
encrypt()
encrypt(
data):Promise<string>
Defined in: packages/core/src/services/cryptoservice.service.ts:855
Encrypt data
Parameters
data
any
the data to process
Returns
Promise<string>
the result string
Implementation of
encryptConfigurationFile()
encryptConfigurationFile(
file,migrate?,upgrade?):Promise<number>
Defined in: packages/core/src/services/cryptoservice.service.ts:1118
Encrypt the marked values of a configuration file, keeping its comments
Prefix a value with encrypt:[<encrypter>:] (SecretString once decrypted) or
sencrypt:[<encrypter>:] (plain string once decrypted) then run this command.
Parameters
file
string
the configuration file (json, jsonc or yaml) to update
migrate?
string
re-encrypt the already encrypted values with this encrypter, the default one when empty
upgrade?
boolean
re-encrypt the already encrypted values with their own encrypter, to its current format or key
Returns
Promise<number>
the number of values changed
generateAsymetricKeys()
generateAsymetricKeys():
object
Defined in: packages/core/src/services/cryptoservice.service.ts:674
Generate asymetric key
Returns
object
the result
privateKey
privateKey:
string
publicKey
publicKey:
string
generateSymetricKey()
generateSymetricKey():
string
Defined in: packages/core/src/services/cryptoservice.service.ts:688
Generate symetric key
Returns
string
the result string
getCapabilities()
getCapabilities():
Record<string,any>
Defined in: packages/core/src/services/iservice.ts:77
Return the capabilities of this service.
By default returns capabilities detected at compile-time from
Returns
Record<string, any>
the result
Webda Capability-tagged
interfaces in webda.module.json.
Override to disable capabilities based on configuration:
getCapabilities() {
const caps = super.getCapabilities();
if (!this.parameters.enabled) delete caps["request-filter"];
return caps;
}
Inherited from
getClientEvents()
getClientEvents():
string[]
Defined in: packages/core/src/services/service.ts:327
Return the events that an external system can subscribe to
Returns
string[]
the list of results
Inherited from
getCurrentKeys()
getCurrentKeys():
Promise<{id:string;keys:KeysDefinition; }>
Defined in: packages/core/src/services/cryptoservice.service.ts:696
Return current key set
Returns
Promise<{ id: string; keys: KeysDefinition; }>
the result
getJWKS()
getJWKS():
object
Defined in: packages/core/src/services/cryptoservice.service.ts:506
Public signing keys as a JSON Web Key Set (RFC 7517)
Only the asymmetric public keys are published, the symmetric keys never leave the service. The kid matches the
one jwtSign writes for asymmetric tokens (A<keyId>), so any JOSE library can verify them. Keys of an
old rotation stay published while they are in the registry: tokens they signed remain verifiable.
Returns
object
the key set
keys
keys:
JsonWebKey[]
getJWKSMaxAge()
getJWKSMaxAge():
number
Defined in: packages/core/src/services/cryptoservice.service.ts:540
Cache duration of the JWKS in seconds
A tenth of the key active lifespan, between one minute and one hour: verifiers see a new key well before the
previous one stops signing, and unknown kid refetches remain rare.
Returns
number
the max-age
getJWKSUrl()
getJWKSUrl():
string
Defined in: packages/core/src/services/cryptoservice.service.ts:494
Url of the JWKS route, relative to the application root
Returns
string
the url or undefined when the JWKS is not exposed (no url parameter)
getJWTHeader()
getJWTHeader(
token):any
Defined in: packages/core/src/services/cryptoservice.service.ts:877
Parse the JWT header section
Parameters
token
string
the token
Returns
any
the result
getJWTKey()
getJWTKey(
header,callback):Promise<void>
Defined in: packages/core/src/services/cryptoservice.service.ts:802
Get JWT key based on kid
Parameters
header
any
the JWT header
callback
any
the callback function
Returns
Promise<void>
getKeysFile()
getKeysFile():
string
Defined in: packages/core/src/services/cryptoservice.service.ts:586
Absolute path of the keys file
Returns
string
the path or undefined when the keys are in the registry
getMaxListeners()
getMaxListeners():
number
Defined in: packages/core/src/events/asynceventemitter.ts:90
Returns
number
Inherited from
getMetric()
getMetric<
T>(type,configuration):T
Defined in: packages/core/src/services/service.ts:309
Add service name label
Type Parameters
T
T = Gauge<string> | Counter<string> | Histogram<string>
Parameters
type
CustomConstructor<T, [MetricConfiguration<T>]>
the type to look up
configuration
the configuration
Returns
T
the result
Inherited from
getName()
getName():
string
Defined in: packages/core/src/services/service.ts:485
Get service name
Returns
string
the result string
Inherited from
getNextId()
getNextId():
object
Defined in: packages/core/src/services/cryptoservice.service.ts:1536
Get next id
Returns
object
the result
age
age:
number
id
id:
string
getOpenApiReplacements()
getOpenApiReplacements():
any
Defined in: packages/core/src/services/service.ts:415
Return variables for replacement in openapi
Returns
any
the result
Inherited from
Service.getOpenApiReplacements
getOperationId()
getOperationId(
id):string
Defined in: packages/core/src/services/service.ts:373
If undefined is returned it cancel the operation registration
Parameters
id
string
the identifier
Returns
string
the result
Inherited from
getParameters()
getParameters():
T
Defined in: packages/core/src/services/service.ts:208
Get the service parameters
Returns
T
the result
Inherited from
getService()
getService<
T>(name):ServicesMap[T]
Defined in: packages/core/src/services/service.ts:299
Get a service by name
Type Parameters
T
T extends keyof ServicesMap
Parameters
name
T
the name to use
Returns
ServicesMap[T]
the result map
Deprecated
Use useService, might reconsider
Inherited from
getState()
getState():
ServiceStates
Defined in: packages/core/src/services/service.ts:171
Get the current state
Returns
the result
Inherited from
getUrl()
getUrl(
url,_methods):string
Defined in: packages/core/src/services/service.ts:350
Return the full path url based on parameters
Parameters
url
string
relative url to service
_methods
in case we need filtering (like Store)
Returns
string
absolute url or undefined if need to skip the Route
Inherited from
hmac()
hmac(
data,keyId?):Promise<string>
Defined in: packages/core/src/services/cryptoservice.service.ts:722
Retrieve a HMAC for a string
Parameters
data
any
the data to process
keyId?
string
to use
Returns
Promise<string>
the result string
hmacVerify()
hmacVerify(
data,hmac):Promise<boolean>
Defined in: packages/core/src/services/cryptoservice.service.ts:736
Verify a HMAC for a string
Parameters
data
any
the data to process
hmac
string
the HMAC instance
Returns
Promise<boolean>
true if the condition is met
init()
init():
Promise<CryptoService<T>>
Defined in: packages/core/src/services/cryptoservice.service.ts:477
Returns
Promise<CryptoService<T>>
Overrides
initMetrics()
initMetrics():
void
Defined in: packages/core/src/services/service.ts:289
Init the metrics
Returns
void
Inherited from
initOperations()
initOperations():
void
Defined in: packages/core/src/services/service.ts:422
Init the operations from
Returns
void
Operation
decorators on this service
Inherited from
jwtSign()
jwtSign(
data,options?):Promise<string>
Defined in: packages/core/src/services/cryptoservice.service.ts:753
JWT token generation
Parameters
data
any
the data to process
options?
the options
Returns
Promise<string>
the result string
jwtVerify()
jwtVerify(
token,options?):Promise<any>
Defined in: packages/core/src/services/cryptoservice.service.ts:828
JWT token verification
Parameters
token
string
the token
options?
the options
Returns
Promise<any>
the result
listeners()
listeners(
eventName):Function[]
Defined in: packages/core/src/events/asynceventemitter.ts:183
Get all listeners for an event
Parameters
eventName
never
the event name
Returns
Function[]
the list of results
Inherited from
load()
load():
Promise<boolean>
Defined in: packages/core/src/services/cryptoservice.service.ts:567
Load keys from registry, or from the keys file if keysFile is set
Returns
Promise<boolean>
true if the condition is met
loadCapabilities()
protectedloadCapabilities():void
Defined in: packages/core/src/services/service.ts:269
Load capabilities from webda.module.json metadata into _compiledCapabilities.
Called during resolve after dependency injection. Reads the service's
type name from parameters, looks it up in the application's module metadata
(moddas or beans section), and populates _compiledCapabilities with an
empty object for each declared capability name.
Fails silently if the application is not available (e.g., in unit tests where services are instantiated without a full application context).
Returns
void
Example
// If webda.module.json contains:
// { "moddas": { "MyApp/HawkService": { "capabilities": ["request-filter", "cors-filter"] } } }
// Then after resolve(), this.getCapabilities() returns:
// { "request-filter": {}, "cors-filter": {} }
See
getCapabilities
Inherited from
log()
log(
level, ...args):void
Defined in: packages/core/src/services/service.ts:515
Parameters
level
WorkerLogLevel
to log
args
...any[]
additional arguments
Returns
void
Inherited from
off()
off<
Key>(eventName,listener):this
Defined in: packages/core/src/events/asynceventemitter.ts:141
Type Parameters
Key
Key extends never
Parameters
eventName
Key
the event name
listener
(event) => void
the event listener
Returns
this
this for chaining
See
EventEmitter.off
Inherited from
on()
on<
Key>(eventName,listener):this
Defined in: packages/core/src/events/asynceventemitter.ts:119
Type Parameters
Key
Key extends never
Parameters
eventName
Key
the event name
listener
(event) => void
the event listener
Returns
this
this for chaining
See
EventEmitter.once
Inherited from
once()
once<
Key>(eventName,listener):this
Defined in: packages/core/src/events/asynceventemitter.ts:108
Type Parameters
Key
Key extends never
Parameters
eventName
Key
the event name
listener
(event) => void
the event listener
Returns
this
this for chaining
See
EventEmitter.once
Inherited from
readKeysFile()
protectedreadKeysFile(file):Promise<KeysRegistry>
Defined in: packages/core/src/services/cryptoservice.service.ts:629
Read and validate the keys file
Parameters
file
string
the absolute path
Returns
Promise<KeysRegistry>
the keys
refreshKeysFile()
protectedrefreshKeysFile():Promise<boolean>
Defined in: packages/core/src/services/cryptoservice.service.ts:597
Read the keys file if it changed since the last read
A file that cannot be read or is invalid fails when no keys are loaded yet. Afterwards it is logged and the current keys are kept, so a broken secret update does not break the running service.
Returns
Promise<boolean>
true once the keys are loaded
removeAllListeners()
removeAllListeners<
Key>(eventName?):this
Defined in: packages/core/src/events/asynceventemitter.ts:150
Type Parameters
Key
Key extends never
Parameters
eventName?
Key
the event name
Returns
this
this for chaining
See
EventEmitter.removeAllListeners
Inherited from
removeListener()
removeListener<
Key>(eventName,listener):this
Defined in: packages/core/src/events/asynceventemitter.ts:130
Type Parameters
Key
Key extends never
Parameters
eventName
Key
the event name
listener
(event) => void
the event listener
Returns
this
this for chaining
See
EventEmitter.removeListener
Inherited from
resolve()
resolve():
this
Defined in: packages/core/src/services/service.ts:235
Resolve parameters and load metadata. @Route-declared routes are scanned
and registered by Router.discoverRoutes(services) from Core.init()
once every service has resolved — nothing to do per-service here.
Returns
this
the result
Inherited from
rotate()
rotate():
Promise<void>
Defined in: packages/core/src/services/cryptoservice.service.ts:1545
Rotate keys
Returns
Promise<void>
serveJWKS()
serveJWKS(
context):Promise<void>
Defined in: packages/core/src/services/cryptoservice.service.ts:558
Parameters
context
the execution context
Returns
Promise<void>
setKeys()
protectedsetKeys(load):void
Defined in: packages/core/src/services/cryptoservice.service.ts:659
Set the keys from their registry format
Parameters
load
the keys
Returns
void
setMaxListeners()
setMaxListeners(
n):this
Defined in: packages/core/src/events/asynceventemitter.ts:97
Parameters
n
number
Returns
this
Inherited from
stop()
stop():
Promise<void>
Defined in: packages/core/src/services/service.ts:216
Shutdown the current service if action need to be taken
Returns
Promise<void>
Inherited from
toJSON()
toJSON():
string
Defined in: packages/core/src/services/service.ts:454
Prevent service to be serialized
Returns
string
the result
Inherited from
toString()
toString():
string
Defined in: packages/core/src/services/service.ts:224
Return service representation
Returns
string
the result
Inherited from
checkFiles()
protectedstaticcheckFiles(files,options?):number
Defined in: packages/core/src/services/cryptoservice.service.ts:1209
Check that the secrets of configuration files are encrypted
Parameters
files
string[]
the files to check
options?
check options
exclude?
string
secret paths not checked, comma-separated
format?
"text" | "json"
output format: text or json
none?
boolean
accept the values kept in clear text with crypt:none:
strict?
boolean
report the values still marked encrypt: as failures
Returns
number
1 when a secret is not encrypted, 0 otherwise
cryptoGenerateKeys()
staticcryptoGenerateKeys(out?):Promise<string>
Defined in: packages/core/src/services/cryptoservice.service.ts:1481
Generate a keys file for the keysFile parameter
The keys use the default algorithms: RSA 2048 bits and a 256 bits symmetric key.
Parameters
out?
string = "keys.json"
the keys file to write
Returns
Promise<string>
the written file
decryptConfiguration()
staticdecryptConfiguration(data,path?,options?):Promise<any>
Defined in: packages/core/src/services/cryptoservice.service.ts:1048
Decrypt the crypt: and scrypt: values of a configuration
crypt:<encrypter>:<data>becomes a SecretStringscrypt:<encrypter>:<data>becomes a plain string, for a module that cannot handle SecretString
The input is not modified: a decrypted copy is returned. Only plain objects and arrays are traversed.
A value still marked encrypt: is kept as is, with a warning.
Parameters
data
any
the configuration, or a single value
path?
(string | number)[] = []
the path of data, for messages
options?
ConfigurationEncryptionOptions = {}
the encryption settings and the application path
Returns
Promise<any>
the decrypted copy
decryptValue()
protectedstaticdecryptValue(encrypter,data,path,pass?):Promise<string>
Defined in: packages/core/src/services/cryptoservice.service.ts:1016
Decrypt one value with an encrypter, with a message that never contains the value
Parameters
encrypter
string
the encrypter name
data
string
the encrypted data
path
(string | number)[]
the configuration path
pass?
EncryptionPass
the current pass, to configure the encrypter
Returns
Promise<string>
the plain value
decryptValues()
protectedstaticdecryptValues(data,pass,path):Promise<any>
Defined in: packages/core/src/services/cryptoservice.service.ts:1063
Decrypt the values of a configuration, see decryptConfiguration
Parameters
data
any
the configuration, or a single value
pass
EncryptionPass
the current pass
path
(string | number)[]
the path of data
Returns
Promise<any>
the decrypted copy
encryptConfiguration()
staticencryptConfiguration(data,options?,path?):Promise<any>
Defined in: packages/core/src/services/cryptoservice.service.ts:942
Encrypt the encrypt:[<encrypter>:]<plain> and sencrypt:[<encrypter>:]<plain> values of a configuration
The structure is modified in place, so a comment-preserving document loaded with
FileUtils.load can be saved back with its comments.
encrypt:<plain> uses the default encrypter, parameters.configurationEncryption.default. The output
always names its encrypter.
Parameters
data
any
the configuration, or a single value
options?
object & ConfigurationEncryptionOptions = {}
options
path?
(string | number)[] = []
the path of data, for error messages
Returns
Promise<any>
the encrypted data
encryptConfigurationFile()
staticencryptConfigurationFile(file?,migrate?,upgrade?,check?,strict?,format?,none?,exclude?):Promise<number>
Defined in: packages/core/src/services/cryptoservice.service.ts:1151
Encrypt the secrets of the configuration files, keeping their comments, or check them
Encrypts the values marked encrypt: or sencrypt:, and the plain values of the secret fields: the fields
typed SecretString or tagged @secret in their service parameters, marked x-webda-secret in the compiled
schemas. The plain secrets are encrypted with the default encrypter.
Without file, it updates the application configuration and the file of the selected deployment.
With check, nothing is written: it fails when a secret is not encrypted. It needs no key, so it runs in CI.
Only the paths are reported, never the values.
It only needs the loaded application: the configuration is not decrypted and no service is created.
Parameters
file?
string
the configuration file (json, jsonc or yaml) to update
migrate?
string
re-encrypt the already encrypted values with this encrypter, the default one when empty
upgrade?
boolean
re-encrypt the already encrypted values with their own encrypter, to its current format or key
check?
boolean = false
only check that the secrets are encrypted, write nothing
strict?
boolean = true
with check, report the values still marked encrypt: as failures
format?
"text" | "json" = "text"
with check, output format: text or json
none?
boolean = true
with check, accept the values kept in clear text with crypt:none:, false to fail on them
exclude?
string
secret paths to leave alone, comma-separated: not checked, not auto-encrypted
Returns
Promise<number>
with check, 1 when a secret is not encrypted, otherwise 0
encryptFile()
staticencryptFile(file,migrate?,upgrade?,exclude?):Promise<number>
Defined in: packages/core/src/services/cryptoservice.service.ts:1301
Encrypt the secrets of a configuration file, keeping its comments
The values marked encrypt: or sencrypt:, and the plain values of the secret fields, with the default
encrypter.
Parameters
file
string
the configuration file (json, jsonc or yaml) to update
migrate?
string
re-encrypt the already encrypted values with this encrypter, the default one when empty
upgrade?
boolean
re-encrypt the already encrypted values with their own encrypter, to its current format or key
exclude?
string | string[]
secret paths not auto-encrypted, comma-separated patterns, see secretPathExcluder
Returns
Promise<number>
the number of values changed
encryptValues()
protectedstaticencryptValues(data,pass,path):Promise<any>
Defined in: packages/core/src/services/cryptoservice.service.ts:966
Encrypt the values of a configuration, see encryptConfiguration
Parameters
data
any
the configuration, or a single value
pass
EncryptionPass
the current pass
path
(string | number)[]
the path of data
Returns
Promise<any>
the encrypted data
findFileSecrets()
staticfindFileSecrets(data,exclude?):SecretFinding[]
Defined in: packages/core/src/services/cryptoservice.service.ts:1262
Find the unencrypted secrets of a configuration or deployment file
A service the file overrides without its type takes the type of the application configuration, and the
file parameters are also checked against the services of the application.
Parameters
data
any
the file content, as plain JSON
exclude?
string | string[]
secret paths to leave out, comma-separated patterns, see secretPathExcluder
Returns
the findings, with their location in data, without the values
getConfigurationFiles()
protectedstaticgetConfigurationFiles(file?):string[]
Defined in: packages/core/src/services/cryptoservice.service.ts:1185
The configuration files to encrypt or check
Parameters
file?
string
the file given on the command line
Returns
string[]
the absolute paths: the file, or the application configuration and the selected deployment file
getEncrypter()
staticgetEncrypter(name):StringEncrypter
Defined in: packages/core/src/services/cryptoservice.service.ts:435
Get a registered encrypter
Parameters
name
string
the encrypter name
Returns
the encrypter or undefined
getEncryptionSettings()
protectedstaticgetEncryptionSettings(data?):ConfigurationEncryption
Defined in: packages/core/src/services/cryptoservice.service.ts:1098
Get the encryption settings of the application, merged with the ones of a configuration file
Parameters
data?
any
the configuration file content
Returns
the settings
getPkiKeyring()
protectedstaticgetPkiKeyring(data?):PkiKeyring
Defined in: packages/core/src/services/cryptoservice.service.ts:1354
Get the keyring of the pki encrypter, as configured for the application
Parameters
data?
any
a configuration file content, its settings override the application ones
Returns
the keyring
pkiGenerate()
staticpkiGenerate(kid,bits?,out?):Promise<{privateKey:string;publicKey:string; }>
Defined in: packages/core/src/services/cryptoservice.service.ts:1374
Generate a key pair for the pki encrypter
The public key is written in the public keys directory, to commit. The private key is written outside of it, to store in the runtime secrets (a Kubernetes Secret for example), never in the repository.
Parameters
kid
string
the key id
bits?
number = 4096
the RSA modulus length
out?
string
the private key file
Returns
Promise<{ privateKey: string; publicKey: string; }>
the written files
pkiList()
staticpkiList(file):Promise<{activeKey?:string;publicKeys:string[];values:Record<string,number>; }>
Defined in: packages/core/src/services/cryptoservice.service.ts:1429
List the public keys of the pki encrypter and the number of values encrypted with each key in a file
A key with no value left can be retired.
Parameters
file
string
the configuration file to inspect
Returns
Promise<{ activeKey?: string; publicKeys: string[]; values: Record<string, number>; }>
the active key, the public keys and the values count by kid
registerEncrypter()
staticregisterEncrypter(name,encrypter):void
Defined in: packages/core/src/services/cryptoservice.service.ts:420
Register an encrypter for configuration
Values written as encrypt:<name>:<plain> are then encrypted by it with webda config encrypt,
and crypt:<name>:<data> values are decrypted by it when the configuration is loaded.
Register it as a side effect of a module that the application loads (a Modda file), so it is available before the services are created.
Parameters
name
string
the name to use, letters, digits, _, - and . only
encrypter
the encrypter implementation
Returns
void
requireEncrypter()
protectedstaticrequireEncrypter(name,path):StringEncrypter
Defined in: packages/core/src/services/cryptoservice.service.ts:445
Get the encrypter for a value, with a helpful error if missing
Parameters
name
string
the encrypter name
path
(string | number)[]
the configuration path, for the error message
Returns
the encrypter
startPass()
protectedstaticstartPass(data,options,path,mode):EncryptionPass
Defined in: packages/core/src/services/cryptoservice.service.ts:889
Start an encryption or decryption pass
Parameters
data
any
the configuration
options
ConfigurationEncryptionOptions
the options
path
(string | number)[]
the path of data
mode
"encrypt" | "decrypt"
encrypt or decrypt
Returns
EncryptionPass
the pass
useEncrypter()
protectedstaticuseEncrypter(name,pass,path):Promise<StringEncrypter>
Defined in: packages/core/src/services/cryptoservice.service.ts:911
Get an encrypter, configured for this pass
Parameters
name
string
the encrypter name
pass
EncryptionPass
the current pass
path
(string | number)[]
the configuration path, for messages
Returns
Promise<StringEncrypter>
the encrypter