Module: "odis"





buildOdisDomain(config: OdisHardeningConfig, authorizer: Address, salt?: undefined | string): SequentialDelayDomain

Defined in packages/sdk/encrypted-backup/src/odis.ts:49

Builds an ODIS SequentialDelayDomain with the given hardening configuration.


Name Type Description
config OdisHardeningConfig -
authorizer Address Address of the key that should authorize requests to ODIS.
salt? undefined | string -

Returns: SequentialDelayDomain

A SequentialDelayDomain with the provided rate limiting configuration.


odisHardenKey(key: Buffer, domain: SequentialDelayDomain, environment: OdisServiceContext, wallet?: EIP712Wallet): Promise‹Result‹Buffer, BackupError››

Defined in packages/sdk/encrypted-backup/src/odis.ts:73

Returns a hardened key derived from the input key material and a POPRF evaluation on that keying material under the given rate limiting domain.


Name Type Description
key Buffer Input key material which will be the blinded input to the ODIS POPRF.
domain SequentialDelayDomain Rate limiting configuration and domain input to the ODIS POPRF.
environment OdisServiceContext Information for the targeted ODIS environment.
wallet? EIP712Wallet Wallet with access to the authorizer signing key specified in the domain input. Should be provided if the input domain is authenticated.

Returns: Promise‹Result‹Buffer, BackupError››


odisQueryAuthorizer(nonce: Buffer): object

Defined in packages/sdk/encrypted-backup/src/odis.ts:161

Derive from the nonce a private key and use it to instantiate a wallet for request signing

remarks It is important that the auth key does not mix in entropy from the password value. If it did, then the derived address and signatures would act as a commitment to the underlying password value and would allow offline brute force attacks when combined with the other values mixed into the key value.


Name Type
nonce Buffer

Returns: object