import { DataOwnerOrStub, IccDataOwnerXApi } from '../icc-data-owner-x-api'; import { UserEncryptionKeysManager } from './UserEncryptionKeysManager'; import { CryptoPrimitives } from './CryptoPrimitives'; import { ExchangeDataManager } from './ExchangeDataManager'; import { CryptoActorStubWithType } from '../../icc-api/model/CryptoActorStub'; /** * Allows to create or update shamir split keys. */ export declare class ShamirKeysManager { private readonly primitives; private readonly dataOwnerApi; private readonly encryptionKeysManager; private readonly exchangeDataManager; constructor(primitives: CryptoPrimitives, dataOwnerApi: IccDataOwnerXApi, encryptionKeysManager: UserEncryptionKeysManager, exchangeDataManager: ExchangeDataManager); /** * Get information on existing private keys splits for the provided data owner. For each private key of the provided data owner which has been * split using the Shamir sharing algorithm gives the list of the notaries (other data owners) which hold a copy of the key part. * @param dataOwner a data owner * @return the existing splits for the current data owner as a publicKeyFingerprint -> notariesIds object */ getExistingSplitsInfo(dataOwner: DataOwnerOrStub): { [keyPairFingerprint: string]: string[]; }; /** * Creates, updates or deletes shamir splits for keys of the current data owner. Any request to update the splits for a specific key will completely * replace any existing data on that split (all previous notaries will be ignored). * Note: currently you can only split the legacy key pair. * @param keySplitsToUpdate the fingerprints of key pairs which will have updated/new splits and the details on how to create the updated splits. * @param keySplitsToDelete the fingerprints or hex-encoded spki public keys which will not be shared anymore. * @throws if the parameters refer to non-existing or unavailable keys, have split creation details, or if they request to delete a non-existing * split. */ updateSelfSplits(keySplitsToUpdate: { [publicKeyHexOrFp: string]: { notariesIds: string[]; minShares: number; }; }, keySplitsToDelete: string[]): Promise; private validateShamirParams; private deleteKeySplit; private updateKeySplit; private createPartitionsFor; private encryptShares; }