|
@@ -14,6 +14,7 @@ type
|
|
TWIZAddKey_SelectEncryption = class(TWizardForm<TWIZAddKeyModel>)
|
|
TWIZAddKey_SelectEncryption = class(TWizardForm<TWIZAddKeyModel>)
|
|
rgKeyType: TRadioGroup;
|
|
rgKeyType: TRadioGroup;
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure FormCreate(Sender: TObject);
|
|
|
|
+ class function GetOptionText(const EC_OpenSSL_NID: Word): AnsiString;
|
|
public
|
|
public
|
|
procedure OnNext; override;
|
|
procedure OnNext; override;
|
|
function Validate(out message : AnsiString) : boolean; override;
|
|
function Validate(out message : AnsiString) : boolean; override;
|
|
@@ -23,24 +24,22 @@ implementation
|
|
|
|
|
|
{$R *.lfm}
|
|
{$R *.lfm}
|
|
|
|
|
|
-uses UAccounts;
|
|
|
|
|
|
+uses UAccounts, UConst, UAutoScope;
|
|
|
|
|
|
{ TWIZAddKey_SelectEncryption }
|
|
{ TWIZAddKey_SelectEncryption }
|
|
|
|
|
|
procedure TWIZAddKey_SelectEncryption.FormCreate(Sender: TObject);
|
|
procedure TWIZAddKey_SelectEncryption.FormCreate(Sender: TObject);
|
|
var
|
|
var
|
|
i : Integer;
|
|
i : Integer;
|
|
|
|
+ GC : TScoped;
|
|
availableEncryptionTypes : TList;
|
|
availableEncryptionTypes : TList;
|
|
|
|
+ name, desc : UTF8String;
|
|
begin
|
|
begin
|
|
rgKeyType.Items.Clear;
|
|
rgKeyType.Items.Clear;
|
|
- availableEncryptionTypes := TList.Create;
|
|
|
|
- try
|
|
|
|
- TAccountComp.ValidsEC_OpenSSL_NID(availableEncryptionTypes);
|
|
|
|
- for i := 0 to availableEncryptionTypes.Count - 1 do begin
|
|
|
|
- rgKeyType.Items.AddObject(TAccountComp.GetECInfoTxt(PtrInt(availableEncryptionTypes[i])),availableEncryptionTypes[i]);
|
|
|
|
- end;
|
|
|
|
- finally
|
|
|
|
- availableEncryptionTypes.free;
|
|
|
|
|
|
+ availableEncryptionTypes := GC.AddObject( TList.Create ) as TList;
|
|
|
|
+ TAccountComp.ValidsEC_OpenSSL_NID(availableEncryptionTypes);
|
|
|
|
+ for i := 0 to availableEncryptionTypes.Count - 1 do begin
|
|
|
|
+ rgKeyType.Items.AddObject(GetOptionText(PtrInt(availableEncryptionTypes[i])),availableEncryptionTypes[i]);
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
|
|
@@ -58,5 +57,25 @@ begin
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+
|
|
|
|
+class function TWIZAddKey_SelectEncryption.GetOptionText(const EC_OpenSSL_NID: Word): AnsiString;
|
|
|
|
+begin
|
|
|
|
+ case EC_OpenSSL_NID of
|
|
|
|
+ CT_NID_secp256k1 : begin
|
|
|
|
+ Result := 'SECP256K1 - Cryptocurrency Standard (same as Bitcoin)';
|
|
|
|
+ end;
|
|
|
|
+ CT_NID_secp384r1 : begin
|
|
|
|
+ Result := 'SECP384R1 - Stronger, different algorithm (larger key) ';
|
|
|
|
+ end;
|
|
|
|
+ CT_NID_sect283k1 : Begin
|
|
|
|
+ Result := 'SECP283K1 - Even stronger (larger key)';
|
|
|
|
+ End;
|
|
|
|
+ CT_NID_secp521r1 : begin
|
|
|
|
+ Result := 'SECP521R1 - Quantum-resistant (largest key)';
|
|
|
|
+ end
|
|
|
|
+ else Result := '(Unknown ID:'+inttostr(EC_OpenSSL_NID)+')';
|
|
|
|
+ end;
|
|
|
|
+end;
|
|
|
|
+
|
|
end.
|
|
end.
|
|
|
|
|