@@ -20,30 +20,32 @@ public void init(KeyGenerationParameters param)
2020
2121 public AsymmetricCipherKeyPair internalGenerateKeyPair (byte [] skSeed , byte [] skPrf , byte [] pkSeed )
2222 {
23- SLHDSAEngine engine = parameters .getEngine ();
24- SK sk = new SK ( skSeed , skPrf );
23+ return implGenerateKeyPair ( parameters .getEngine (), skSeed , skPrf , pkSeed );
24+ }
2525
26- engine .init (pkSeed );
26+ public AsymmetricCipherKeyPair generateKeyPair ()
27+ {
28+ SLHDSAEngine engine = parameters .getEngine ();
2729
28- // TODO
29- PK pk = new PK (pkSeed , new HT (engine , sk .seed , pkSeed ).htPubKey );
30+ byte [] skSeed = sec_rand (engine .N );
31+ byte [] skPrf = sec_rand (engine .N );
32+ byte [] pkSeed = sec_rand (engine .N );
3033
31- return new AsymmetricCipherKeyPair (new SLHDSAPublicKeyParameters (parameters , pk ),
32- new SLHDSAPrivateKeyParameters (parameters , sk , pk ));
34+ return implGenerateKeyPair (engine , skSeed , skPrf , pkSeed );
3335 }
3436
35- public AsymmetricCipherKeyPair generateKeyPair ( )
37+ private AsymmetricCipherKeyPair implGenerateKeyPair ( SLHDSAEngine engine , byte [] skSeed , byte [] skPrf , byte [] pkSeed )
3638 {
37- SLHDSAEngine engine = parameters .getEngine ();
38- byte [] pkSeed ;
39- byte [] skSeed ;
40- byte [] skPrf ;
39+ SK sk = new SK (skSeed , skPrf );
4140
41+ engine .init (pkSeed );
42+
43+ // TODO
44+ PK pk = new PK (pkSeed , new HT (engine , sk .seed , pkSeed ).htPubKey );
4245
43- skSeed = sec_rand (engine .N );
44- skPrf = sec_rand (engine .N );
45- pkSeed = sec_rand (engine .N );
46- return internalGenerateKeyPair (skSeed , skPrf , pkSeed );
46+ return new AsymmetricCipherKeyPair (
47+ new SLHDSAPublicKeyParameters (parameters , pk ),
48+ new SLHDSAPrivateKeyParameters (parameters , sk , pk ));
4749 }
4850
4951 private byte [] sec_rand (int n )
0 commit comments