summary refs log tree commit diff
path: root/crypto/src
diff options
context:
space:
mode:
authorRoy Basmacier <roy.basmacier@keyfactor.com>2022-07-11 11:18:42 -0400
committerRoy Basmacier <roy.basmacier@keyfactor.com>2022-07-11 11:18:42 -0400
commit53b3d8e0d1185112150c335d1325a8d8245380ab (patch)
tree8bd93ba9bd4d4492463de1a079cbfca5ad31d7ed /crypto/src
parentFixed static problem in Picnic (diff)
downloadBouncyCastle.NET-ed25519-53b3d8e0d1185112150c335d1325a8d8245380ab.tar.xz
Added SIKE to PrivateKeyFactory.cs and changed SikeVectorTest.cs
Diffstat (limited to 'crypto/src')
-rw-r--r--crypto/src/pqc/crypto/utils/PrivateKeyFactory.cs8
1 files changed, 8 insertions, 0 deletions
diff --git a/crypto/src/pqc/crypto/utils/PrivateKeyFactory.cs b/crypto/src/pqc/crypto/utils/PrivateKeyFactory.cs
index 009cadedf..0fadab855 100644
--- a/crypto/src/pqc/crypto/utils/PrivateKeyFactory.cs
+++ b/crypto/src/pqc/crypto/utils/PrivateKeyFactory.cs
@@ -13,6 +13,7 @@ using Org.BouncyCastle.Pqc.Crypto.Cmce;
 using Org.BouncyCastle.Pqc.Crypto.Lms;
 using Org.BouncyCastle.Pqc.Crypto.Picnic;
 using Org.BouncyCastle.Pqc.Crypto.Saber;
+using Org.BouncyCastle.Pqc.Crypto.Sike;
 using Org.BouncyCastle.Pqc.Crypto.SphincsPlus;
 using Org.BouncyCastle.Utilities;
 
@@ -97,6 +98,13 @@ namespace Org.BouncyCastle.Pqc.Crypto.Utilities
 
                 return new PicnicPrivateKeyParameters(picnicParams, keyEnc);
             }
+            if (algOID.On(BCObjectIdentifiers.pqc_kem_sike))
+            {
+                byte[] keyEnc = Asn1OctetString.GetInstance(keyInfo.ParsePrivateKey()).GetOctets();
+                SIKEParameters sikeParams = PqcUtilities.SikeParamsLookup(keyInfo.PrivateKeyAlgorithm.Algorithm);
+
+                return new SIKEPrivateKeyParameters(sikeParams, keyEnc);
+            }
             
             
             throw new Exception("algorithm identifier in private key not recognised");