diff --git a/crypto/src/pqc/crypto/frodo/FrodoKEMExtractor.cs b/crypto/src/pqc/crypto/frodo/FrodoKEMExtractor.cs
index 055fe3bc6..8a26e90a4 100644
--- a/crypto/src/pqc/crypto/frodo/FrodoKEMExtractor.cs
+++ b/crypto/src/pqc/crypto/frodo/FrodoKEMExtractor.cs
@@ -25,7 +25,7 @@ namespace Org.BouncyCastle.Pqc.Crypto.Frodo
public byte[] ExtractSecret(byte[] encapsulation)
{
byte[] session_key = new byte[engine.SessionKeySize];
- engine.kem_dec(session_key, encapsulation, ((FrodoPrivateKeyParameters)key).PrivateKey);
+ engine.kem_dec(session_key, encapsulation, ((FrodoPrivateKeyParameters)key).privateKey);
return session_key;
}
diff --git a/crypto/src/pqc/crypto/frodo/FrodoKEMGenerator.cs b/crypto/src/pqc/crypto/frodo/FrodoKEMGenerator.cs
index 5de9a2094..540024409 100644
--- a/crypto/src/pqc/crypto/frodo/FrodoKEMGenerator.cs
+++ b/crypto/src/pqc/crypto/frodo/FrodoKEMGenerator.cs
@@ -24,7 +24,7 @@ namespace Org.BouncyCastle.Pqc.Crypto.Frodo
FrodoEngine engine = key.Parameters.Engine;
byte[] cipher_text = new byte[engine.CipherTextSize];
byte[] sessionKey = new byte[engine.SessionKeySize];
- engine.kem_enc(cipher_text, sessionKey, key.PublicKey, sr);
+ engine.kem_enc(cipher_text, sessionKey, key.m_publicKey, sr);
return new SecretWithEncapsulationImpl(sessionKey, cipher_text);
}
diff --git a/crypto/src/pqc/crypto/frodo/FrodoPrivateKeyParameters.cs b/crypto/src/pqc/crypto/frodo/FrodoPrivateKeyParameters.cs
index 400454c9a..7cf215504 100644
--- a/crypto/src/pqc/crypto/frodo/FrodoPrivateKeyParameters.cs
+++ b/crypto/src/pqc/crypto/frodo/FrodoPrivateKeyParameters.cs
@@ -7,9 +7,12 @@ namespace Org.BouncyCastle.Pqc.Crypto.Frodo
public class FrodoPrivateKeyParameters
: FrodoKeyParameters
{
- private byte[] privateKey;
+ internal byte[] privateKey;
- public byte[] PrivateKey => Arrays.Clone(privateKey);
+ public byte[] GetPrivateKey()
+ {
+ return Arrays.Clone(privateKey);
+ }
public FrodoPrivateKeyParameters(FrodoParameters parameters, byte[] privateKey)
: base(true, parameters)
diff --git a/crypto/src/pqc/crypto/frodo/FrodoPublicKeyParameters.cs b/crypto/src/pqc/crypto/frodo/FrodoPublicKeyParameters.cs
index 1b8c37331..70fad4024 100644
--- a/crypto/src/pqc/crypto/frodo/FrodoPublicKeyParameters.cs
+++ b/crypto/src/pqc/crypto/frodo/FrodoPublicKeyParameters.cs
@@ -7,13 +7,17 @@ namespace Org.BouncyCastle.Pqc.Crypto.Frodo
public class FrodoPublicKeyParameters
: FrodoKeyParameters
{
- private readonly byte[] m_publicKey;
+ internal readonly byte[] m_publicKey;
+
+ public byte[] GetPublicKey()
+ {
+ return Arrays.Clone(m_publicKey);
+ }
- public byte[] PublicKey => Arrays.Clone(m_publicKey);
public byte[] GetEncoded()
{
- return PublicKey;
+ return GetPublicKey();
}
public FrodoPublicKeyParameters(FrodoParameters parameters, byte[] publicKey)
diff --git a/crypto/test/src/pqc/crypto/test/FrodoVectorTest.cs b/crypto/test/src/pqc/crypto/test/FrodoVectorTest.cs
index f7397c442..a8133e524 100644
--- a/crypto/test/src/pqc/crypto/test/FrodoVectorTest.cs
+++ b/crypto/test/src/pqc/crypto/test/FrodoVectorTest.cs
@@ -87,8 +87,8 @@ namespace Org.BouncyCastle.Pqc.Crypto.Tests
FrodoPublicKeyParameters pubParams = (FrodoPublicKeyParameters)kp.Public;
FrodoPrivateKeyParameters privParams = (FrodoPrivateKeyParameters)kp.Private;
- Assert.True(Arrays.AreEqual(pk, pubParams.PublicKey), $"{name} {count} : public key");
- Assert.True(Arrays.AreEqual(sk, privParams.PrivateKey), $"{name} {count} : secret key");
+ Assert.True(Arrays.AreEqual(pk, pubParams.GetPublicKey()), $"{name} {count} : public key");
+ Assert.True(Arrays.AreEqual(sk, privParams.GetPrivateKey()), $"{name} {count} : secret key");
// kem_enc
FrodoKEMGenerator frodoEncCipher = new FrodoKEMGenerator(random);
|