blob: fd5e441a2898f368758a50653838457a9cd9f2e0 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
using Org.BouncyCastle.Crypto;
using Org.BouncyCastle.Security;
namespace Org.BouncyCastle.Pqc.Crypto.Picnic
{
public class PicnicKeyPairGenerator
: IAsymmetricCipherKeyPairGenerator
{
private SecureRandom random;
private PicnicParameters parameters;
public void Init(KeyGenerationParameters param)
{
random = param.Random;
parameters = ((PicnicKeyGenerationParameters) param).GetParameters();
}
public AsymmetricCipherKeyPair GenerateKeyPair()
{
PicnicEngine engine = parameters.GetEngine();
byte[] sk = new byte[engine.GetSecretKeySize()];
byte[] pk = new byte[engine.GetPublicKeySize()];
engine.crypto_sign_keypair(pk, sk, random);
PicnicPublicKeyParameters pubKey = new PicnicPublicKeyParameters(parameters, pk);
PicnicPrivateKeyParameters privKey = new PicnicPrivateKeyParameters(parameters, sk);
return new AsymmetricCipherKeyPair(pubKey, privKey);
}
}
}
|