Browse Source

private key

Ugochukwu Mmaduekwe 7 years ago
parent
commit
df40635049
1 changed files with 28 additions and 6 deletions
  1. 28 6
      CryptoLib.Tests/src/Crypto/IESCipherTests.pas

+ 28 - 6
CryptoLib.Tests/src/Crypto/IESCipherTests.pas

@@ -76,7 +76,11 @@ uses
   ClpHex,
   ClpDigestUtilities,
   ClpMacUtilities,
-  ClpArrayUtils;
+  ClpArrayUtils,
+  ClpBigInteger,
+  ClpAsymmetricCipherKeyPair,
+  ClpECPrivateKeyParameters,
+  ClpECKeyPairGenerator;
 
 type
 
@@ -177,6 +181,9 @@ begin
 end;
 
 function TTestIESCipher.GetECKeyPair: IAsymmetricCipherKeyPair;
+const
+  PrivateKeyInHex =
+    '0c4f86613be9fdb1ac56d471b63a2b55871f356870a63f1a44732baa9847f395';
 var
   CurveName: string;
   KeyPairGeneratorInstance: IAsymmetricCipherKeyPairGenerator;
@@ -184,18 +191,33 @@ var
   Lcurve: IX9ECParameters;
   ecSpec: IECDomainParameters;
   KeyPair: IAsymmetricCipherKeyPair;
+  PrivateKeyBytes: TBytes;
+  PrivD: TBigInteger;
+  RegeneratedPublicKey: IECPublicKeyParameters;
+  RegeneratedPrivateKey: IECPrivateKeyParameters;
 begin
   // Set Up EC Key Pair
 
   CurveName := 'secp256k1';
   Lcurve := TSecNamedCurves.GetByName(CurveName);
-  KeyPairGeneratorInstance := TGeneratorUtilities.GetKeyPairGenerator('ECDSA');
+  // KeyPairGeneratorInstance := TGeneratorUtilities.GetKeyPairGenerator('ECDSA');
   ecSpec := TECDomainParameters.Create(Lcurve.Curve, Lcurve.G, Lcurve.N,
     Lcurve.H, Lcurve.GetSeed);
-  RandomInstance := TSecureRandom.Create();
-  KeyPairGeneratorInstance.Init(TECKeyGenerationParameters.Create(ecSpec,
-    RandomInstance));
-  result := KeyPairGeneratorInstance.GenerateKeyPair();
+  // RandomInstance := TSecureRandom.Create();
+  // KeyPairGeneratorInstance.Init(TECKeyGenerationParameters.Create(ecSpec,
+  // RandomInstance));
+  // result := KeyPairGeneratorInstance.GenerateKeyPair();
+  PrivateKeyBytes := THex.Decode(PrivateKeyInHex);
+
+  PrivD := TBigInteger.Create(1, PrivateKeyBytes);
+  RegeneratedPrivateKey := TECPrivateKeyParameters.Create('ECDSA',
+    PrivD, ecSpec);
+
+  RegeneratedPublicKey := TECKeyPairGenerator.GetCorrespondingPublicKey
+    (RegeneratedPrivateKey);
+
+  result := TAsymmetricCipherKeyPair.Create(RegeneratedPublicKey,
+    RegeneratedPrivateKey);
 end;
 
 function TTestIESCipher.GetIESCipherParameters: IIESWithCipherParameters;