vault/ui/lib/pki/addon/components/pki-key-parameters.js
Angel Garbarino c5b7047f34
PKI role create: fix issue with setting default key_bits on init and when key_type changes (#17613)
* working

* fix issue with signature bits

* fix ember upgrade change

* clean up

* fix signature bits to number

* default value in model

* fix language
2022-10-19 15:28:43 -06:00

46 lines
1.4 KiB
JavaScript

import Component from '@glimmer/component';
import { action } from '@ember/object';
/**
* @module PkiKeyParameters
* PkiKeyParameters components are used to set the default and update the key_bits pki role api param whenever the key_type changes.
* key_bits is conditional on key_type and should be set as a default value whenever key_type changes.
* @example
* ```js
* <PkiKeyParameters @model={@model} @group={group}/>
* ```
* @param {class} model - The pki/pki-role-engine model.
* @param {string} group - The name of the group created in the model. In this case, it's the "Key parameters" group.
*/
const KEY_BITS_OPTIONS = {
rsa: [2048, 3072, 4096],
ec: [256, 224, 384, 521],
ed25519: [0],
any: [0],
};
export default class PkiKeyParameters extends Component {
get keyBitOptions() {
return KEY_BITS_OPTIONS[this.args.model.keyType];
}
get keyBitsDefault() {
return Number(KEY_BITS_OPTIONS[this.args.model.keyType][0]);
}
@action onKeyBitsChange(selection) {
this.args.model.set('keyBits', Number(selection.target.value));
}
@action onSignatureBitsOrKeyTypeChange(name, selection) {
if (name === 'signatureBits') {
this.args.model.set(name, Number(selection.target.value));
}
if (name === 'keyType') {
this.args.model.set(name, selection.target.value);
this.args.model.set('keyBits', this.keyBitsDefault);
}
}
}