Fix missing kdf parameters in connector code (#4638)

This commit is contained in:
Bernd Schoolmann 2023-02-03 02:21:56 +01:00 committed by GitHub
parent cc5c753e30
commit fa231499d6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 4 deletions

View File

@ -1,4 +1,5 @@
import { KdfType } from "../../../enums/kdfType";
import { KdfConfig } from "../../domain/kdf-config";
import { KeysRequest } from "../keys.request";
export class SetKeyConnectorKeyRequest {
@ -6,18 +7,22 @@ export class SetKeyConnectorKeyRequest {
keys: KeysRequest;
kdf: KdfType;
kdfIterations: number;
kdfMemory?: number;
kdfParallelism?: number;
orgIdentifier: string;
constructor(
key: string,
kdf: KdfType,
kdfIterations: number,
kdfConfig: KdfConfig,
orgIdentifier: string,
keys: KeysRequest
) {
this.key = key;
this.kdf = kdf;
this.kdfIterations = kdfIterations;
this.kdfIterations = kdfConfig.iterations;
this.kdfMemory = kdfConfig.memory;
this.kdfParallelism = kdfConfig.parallelism;
this.orgIdentifier = orgIdentifier;
this.keys = keys;
}

View File

@ -85,12 +85,13 @@ export class KeyConnectorService implements KeyConnectorServiceAbstraction {
async convertNewSsoUserToKeyConnector(tokenResponse: IdentityTokenResponse, orgId: string) {
const { kdf, kdfIterations, kdfMemory, kdfParallelism, keyConnectorUrl } = tokenResponse;
const password = await this.cryptoFunctionService.randomBytes(64);
const kdfConfig = new KdfConfig(kdfIterations, kdfMemory, kdfParallelism);
const k = await this.cryptoService.makeKey(
Utils.fromBufferToB64(password),
await this.tokenService.getEmail(),
kdf,
new KdfConfig(kdfIterations, kdfMemory, kdfParallelism)
kdfConfig
);
const keyConnectorRequest = new KeyConnectorUserKeyRequest(k.encKeyB64);
await this.cryptoService.setKey(k);
@ -110,7 +111,7 @@ export class KeyConnectorService implements KeyConnectorServiceAbstraction {
const setPasswordRequest = new SetKeyConnectorKeyRequest(
encKey[1].encryptedString,
kdf,
kdfIterations,
kdfConfig,
orgId,
keys
);