summary refs log tree commit diff
path: root/crypto/src
diff options
context:
space:
mode:
authorDavid Hook <dgh@cryptoworkshop.com>2019-01-20 11:19:49 +1100
committerDavid Hook <dgh@cryptoworkshop.com>2019-01-20 11:19:49 +1100
commit9480083a2bdc5dea14e69c6ebb263d227d981d3f (patch)
tree97ff82de5c2d0a3b1fa74bd1c588ebaae4df6f2d /crypto/src
parentfixed file name (diff)
parentminor tweaking (diff)
downloadBouncyCastle.NET-ed25519-9480083a2bdc5dea14e69c6ebb263d227d981d3f.tar.xz
Merge remote-tracking branch 'origin/master'
Diffstat (limited to 'crypto/src')
-rw-r--r--crypto/src/cms/KeyTransRecipientInformation.cs14
-rw-r--r--crypto/src/crypto/digests/GOST3411_2012Digest.cs6
-rw-r--r--crypto/src/crypto/digests/GOST3411_2012_256Digest.cs8
-rw-r--r--crypto/src/crypto/digests/GOST3411_2012_512Digest.cs8
-rw-r--r--crypto/src/crypto/operators/Asn1KeyWrapper.cs15
-rw-r--r--crypto/src/crypto/parameters/ECGOST3410Parameters.cs6
-rw-r--r--crypto/src/crypto/signers/EcGost3410_2012Signer.cs4
-rw-r--r--crypto/src/pkcs/PrivateKeyInfoFactory.cs4
-rw-r--r--crypto/src/security/DigestUtilities.cs4
-rw-r--r--crypto/src/security/PrivateKeyFactory.cs12
-rw-r--r--crypto/src/security/PublicKeyFactory.cs4
-rw-r--r--crypto/src/x509/SubjectPublicKeyInfoFactory.cs4
12 files changed, 48 insertions, 41 deletions
diff --git a/crypto/src/cms/KeyTransRecipientInformation.cs b/crypto/src/cms/KeyTransRecipientInformation.cs

index 3b1ea7b5e..7d2f072b5 100644 --- a/crypto/src/cms/KeyTransRecipientInformation.cs +++ b/crypto/src/cms/KeyTransRecipientInformation.cs
@@ -55,12 +55,18 @@ namespace Org.BouncyCastle.Cms } private string GetExchangeEncryptionAlgorithmName( - DerObjectIdentifier oid) + AlgorithmIdentifier algo) { - if (Asn1Pkcs.PkcsObjectIdentifiers.RsaEncryption.Equals(oid)) + DerObjectIdentifier oid = algo.Algorithm; + + if (Asn1Pkcs.PkcsObjectIdentifiers.RsaEncryption.Equals(oid)) { return "RSA//PKCS1Padding"; - } + } else if (Asn1Pkcs.PkcsObjectIdentifiers.IdRsaesOaep.Equals(oid)) + { + Asn1Pkcs.RsaesOaepParameters rsaParams = Asn1Pkcs.RsaesOaepParameters.GetInstance(algo.Parameters); + return "RSA//OAEPWITH"+DigestUtilities.GetAlgorithmName(rsaParams.HashAlgorithm.Algorithm)+"ANDMGF1Padding"; + } return oid.Id; } @@ -68,7 +74,7 @@ namespace Org.BouncyCastle.Cms internal KeyParameter UnwrapKey(ICipherParameters key) { byte[] encryptedKey = info.EncryptedKey.GetOctets(); - string keyExchangeAlgorithm = GetExchangeEncryptionAlgorithmName(keyEncAlg.Algorithm); + string keyExchangeAlgorithm = GetExchangeEncryptionAlgorithmName(keyEncAlg); try { diff --git a/crypto/src/crypto/digests/GOST3411_2012Digest.cs b/crypto/src/crypto/digests/GOST3411_2012Digest.cs
index 439512924..68cb6c035 100644 --- a/crypto/src/crypto/digests/GOST3411_2012Digest.cs +++ b/crypto/src/crypto/digests/GOST3411_2012Digest.cs
@@ -4,7 +4,7 @@ using Org.BouncyCastle.Utilities; namespace Org.BouncyCastle.Crypto.Digests { - public abstract class GOST3411_2012Digest:IDigest,IMemoable + public abstract class Gost3411_2012Digest:IDigest,IMemoable { private readonly byte[] IV = new byte[64]; private readonly byte[] N = new byte[64]; @@ -19,7 +19,7 @@ namespace Org.BouncyCastle.Crypto.Digests private int bOff = 64; - protected GOST3411_2012Digest(byte[] IV) + protected Gost3411_2012Digest(byte[] IV) { System.Array.Copy(IV,this.IV,64); System.Array.Copy(IV, h, 64); @@ -79,7 +79,7 @@ namespace Org.BouncyCastle.Crypto.Digests public void Reset(IMemoable other) { - GOST3411_2012Digest o = (GOST3411_2012Digest)other; + Gost3411_2012Digest o = (Gost3411_2012Digest)other; System.Array.Copy(o.IV, 0, this.IV, 0, 64); System.Array.Copy(o.N, 0, this.N, 0, 64); diff --git a/crypto/src/crypto/digests/GOST3411_2012_256Digest.cs b/crypto/src/crypto/digests/GOST3411_2012_256Digest.cs
index 8686851e2..77cf6c50f 100644 --- a/crypto/src/crypto/digests/GOST3411_2012_256Digest.cs +++ b/crypto/src/crypto/digests/GOST3411_2012_256Digest.cs
@@ -3,7 +3,7 @@ using Org.BouncyCastle.Utilities; namespace Org.BouncyCastle.Crypto.Digests { - public class GOST3411_2012_256Digest : GOST3411_2012Digest + public class Gost3411_2012_256Digest : Gost3411_2012Digest { private readonly static byte[] IV = { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, @@ -21,12 +21,12 @@ namespace Org.BouncyCastle.Crypto.Digests get { return "GOST3411-2012-256"; } } - public GOST3411_2012_256Digest() : base(IV) + public Gost3411_2012_256Digest() : base(IV) { } - public GOST3411_2012_256Digest(GOST3411_2012_256Digest other) : base(IV) + public Gost3411_2012_256Digest(Gost3411_2012_256Digest other) : base(IV) { Reset(other); } @@ -48,7 +48,7 @@ namespace Org.BouncyCastle.Crypto.Digests public override IMemoable Copy() { - return new GOST3411_2012_256Digest(this); + return new Gost3411_2012_256Digest(this); } } } diff --git a/crypto/src/crypto/digests/GOST3411_2012_512Digest.cs b/crypto/src/crypto/digests/GOST3411_2012_512Digest.cs
index eb40aba1d..2b77e36a9 100644 --- a/crypto/src/crypto/digests/GOST3411_2012_512Digest.cs +++ b/crypto/src/crypto/digests/GOST3411_2012_512Digest.cs
@@ -3,7 +3,7 @@ using Org.BouncyCastle.Utilities; namespace Org.BouncyCastle.Crypto.Digests { - public class GOST3411_2012_512Digest:GOST3411_2012Digest + public class Gost3411_2012_512Digest:Gost3411_2012Digest { private readonly static byte[] IV = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -21,11 +21,11 @@ namespace Org.BouncyCastle.Crypto.Digests get { return "GOST3411-2012-512"; } } - public GOST3411_2012_512Digest():base(IV) + public Gost3411_2012_512Digest():base(IV) { } - public GOST3411_2012_512Digest(GOST3411_2012_512Digest other) : base(IV) + public Gost3411_2012_512Digest(Gost3411_2012_512Digest other) : base(IV) { Reset(other); } @@ -37,7 +37,7 @@ namespace Org.BouncyCastle.Crypto.Digests public override IMemoable Copy() { - return new GOST3411_2012_512Digest(this); + return new Gost3411_2012_512Digest(this); } } } diff --git a/crypto/src/crypto/operators/Asn1KeyWrapper.cs b/crypto/src/crypto/operators/Asn1KeyWrapper.cs
index 527e3df31..ffce7f63a 100644 --- a/crypto/src/crypto/operators/Asn1KeyWrapper.cs +++ b/crypto/src/crypto/operators/Asn1KeyWrapper.cs
@@ -12,6 +12,7 @@ using Org.BouncyCastle.Crypto.Engines; using Org.BouncyCastle.Utilities; using Org.BouncyCastle.Asn1.Oiw; using Org.BouncyCastle.Asn1.Nist; +using Org.BouncyCastle.Security; namespace Org.BouncyCastle.Crypto.Operators { @@ -106,33 +107,33 @@ namespace Org.BouncyCastle.Crypto.Operators { internal static object Rsa_Sha1_Oaep(bool forWrapping, ICipherParameters parameters) { - return new RsaOaepWrapper(forWrapping, parameters, OiwObjectIdentifiers.IdSha1, new Sha1Digest()); + return new RsaOaepWrapper(forWrapping, parameters, OiwObjectIdentifiers.IdSha1); } internal static object Rsa_Sha224_Oaep(bool forWrapping, ICipherParameters parameters) { - return new RsaOaepWrapper(forWrapping, parameters, NistObjectIdentifiers.IdSha224, new Sha224Digest()); + return new RsaOaepWrapper(forWrapping, parameters, NistObjectIdentifiers.IdSha224); } internal static object Rsa_Sha256_Oaep(bool forWrapping, ICipherParameters parameters) { - return new RsaOaepWrapper(forWrapping, parameters, NistObjectIdentifiers.IdSha256, new Sha256Digest()); + return new RsaOaepWrapper(forWrapping, parameters, NistObjectIdentifiers.IdSha256); } internal static object Rsa_Sha384_Oaep(bool forWrapping, ICipherParameters parameters) { - return new RsaOaepWrapper(forWrapping, parameters, NistObjectIdentifiers.IdSha384, new Sha384Digest()); + return new RsaOaepWrapper(forWrapping, parameters, NistObjectIdentifiers.IdSha384); } internal static object Rsa_Sha512_Oaep(bool forWrapping, ICipherParameters parameters) { - return new RsaOaepWrapper(forWrapping, parameters, NistObjectIdentifiers.IdSha512, new Sha512Digest()); + return new RsaOaepWrapper(forWrapping, parameters, NistObjectIdentifiers.IdSha512); } private readonly AlgorithmIdentifier algId; private readonly IAsymmetricBlockCipher engine; - public RsaOaepWrapper(bool forWrapping, ICipherParameters parameters, DerObjectIdentifier digestOid, IDigest digest) + public RsaOaepWrapper(bool forWrapping, ICipherParameters parameters, DerObjectIdentifier digestOid) { AlgorithmIdentifier digestAlgId = new AlgorithmIdentifier(digestOid, DerNull.Instance); @@ -142,7 +143,7 @@ namespace Org.BouncyCastle.Crypto.Operators digestAlgId, new AlgorithmIdentifier(PkcsObjectIdentifiers.IdMgf1, digestAlgId), RsaesOaepParameters.DefaultPSourceAlgorithm)); - this.engine = new OaepEncoding(new RsaBlindedEngine()); + this.engine = new OaepEncoding(new RsaBlindedEngine(), DigestUtilities.GetDigest(digestOid) ); this.engine.Init(forWrapping, parameters); } diff --git a/crypto/src/crypto/parameters/ECGOST3410Parameters.cs b/crypto/src/crypto/parameters/ECGOST3410Parameters.cs
index ede7433d6..a3aa1953c 100644 --- a/crypto/src/crypto/parameters/ECGOST3410Parameters.cs +++ b/crypto/src/crypto/parameters/ECGOST3410Parameters.cs
@@ -4,7 +4,7 @@ using Org.BouncyCastle.Math.EC; namespace Org.BouncyCastle.Crypto.Parameters { - public class ECGOST3410Parameters : ECNamedDomainParameters + public class ECGost3410Parameters : ECNamedDomainParameters { private readonly DerObjectIdentifier _publicKeyParamSet; @@ -26,7 +26,7 @@ namespace Org.BouncyCastle.Crypto.Parameters get { return _encryptionParamSet; } } - public ECGOST3410Parameters( + public ECGost3410Parameters( ECNamedDomainParameters dp, DerObjectIdentifier publicKeyParamSet, DerObjectIdentifier digestParamSet, @@ -38,7 +38,7 @@ namespace Org.BouncyCastle.Crypto.Parameters } - public ECGOST3410Parameters(ECDomainParameters dp, DerObjectIdentifier publicKeyParamSet, + public ECGost3410Parameters(ECDomainParameters dp, DerObjectIdentifier publicKeyParamSet, DerObjectIdentifier digestParamSet, DerObjectIdentifier encryptionParamSet) : base(publicKeyParamSet, dp.Curve, dp.G, dp.N, dp.H, dp.GetSeed()) { diff --git a/crypto/src/crypto/signers/EcGost3410_2012Signer.cs b/crypto/src/crypto/signers/EcGost3410_2012Signer.cs
index e7174ace6..c94f2c7d1 100644 --- a/crypto/src/crypto/signers/EcGost3410_2012Signer.cs +++ b/crypto/src/crypto/signers/EcGost3410_2012Signer.cs
@@ -10,7 +10,7 @@ using Org.BouncyCastle.Utilities; namespace Org.BouncyCastle.Crypto.Signers { - public class ECGOST3410_2012Signer : IDsaExt + public class ECGost3410_2012Signer : IDsaExt { private ECKeyParameters key; private SecureRandom secureRandom; @@ -150,4 +150,4 @@ namespace Org.BouncyCastle.Crypto.Signers return new FixedPointCombMultiplier(); } } -} \ No newline at end of file +} diff --git a/crypto/src/pkcs/PrivateKeyInfoFactory.cs b/crypto/src/pkcs/PrivateKeyInfoFactory.cs
index 75a56983a..0d5026909 100644 --- a/crypto/src/pkcs/PrivateKeyInfoFactory.cs +++ b/crypto/src/pkcs/PrivateKeyInfoFactory.cs
@@ -124,9 +124,9 @@ namespace Org.BouncyCastle.Pkcs ECDomainParameters dp = priv.Parameters; // ECGOST3410 - if (dp is ECGOST3410Parameters) + if (dp is ECGost3410Parameters) { - ECGOST3410Parameters domainParameters = (ECGOST3410Parameters) dp; + ECGost3410Parameters domainParameters = (ECGost3410Parameters) dp; Gost3410PublicKeyAlgParameters gostParams = new Gost3410PublicKeyAlgParameters( (domainParameters).PublicKeyParamSet, diff --git a/crypto/src/security/DigestUtilities.cs b/crypto/src/security/DigestUtilities.cs
index 24a68f63d..7685e3384 100644 --- a/crypto/src/security/DigestUtilities.cs +++ b/crypto/src/security/DigestUtilities.cs
@@ -213,8 +213,8 @@ namespace Org.BouncyCastle.Security case DigestAlgorithm.DSTU7564_384: return new Dstu7564Digest(384); case DigestAlgorithm.DSTU7564_512: return new Dstu7564Digest(512); case DigestAlgorithm.GOST3411: return new Gost3411Digest(); - case DigestAlgorithm.GOST3411_2012_256: return new GOST3411_2012_256Digest(); - case DigestAlgorithm.GOST3411_2012_512: return new GOST3411_2012_512Digest(); + case DigestAlgorithm.GOST3411_2012_256: return new Gost3411_2012_256Digest(); + case DigestAlgorithm.GOST3411_2012_512: return new Gost3411_2012_512Digest(); case DigestAlgorithm.KECCAK_224: return new KeccakDigest(224); case DigestAlgorithm.KECCAK_256: return new KeccakDigest(256); case DigestAlgorithm.KECCAK_288: return new KeccakDigest(288); diff --git a/crypto/src/security/PrivateKeyFactory.cs b/crypto/src/security/PrivateKeyFactory.cs
index 9f2d2e9c1..f7709160d 100644 --- a/crypto/src/security/PrivateKeyFactory.cs +++ b/crypto/src/security/PrivateKeyFactory.cs
@@ -192,7 +192,7 @@ namespace Org.BouncyCastle.Security || algOid.Equals(RosstandartObjectIdentifiers.id_tc26_gost_3410_12_256)) { Gost3410PublicKeyAlgParameters gostParams = Gost3410PublicKeyAlgParameters.GetInstance(keyInfo.PrivateKeyAlgorithm.Parameters); - ECGOST3410Parameters ecSpec = null; + ECGost3410Parameters ecSpec = null; BigInteger d = null; Asn1Object p = keyInfo.PrivateKeyAlgorithm.Parameters.ToAsn1Object(); if (p is Asn1Sequence && (Asn1Sequence.GetInstance(p).Count == 2 || Asn1Sequence.GetInstance(p).Count == 3)) @@ -200,7 +200,7 @@ namespace Org.BouncyCastle.Security ECDomainParameters ecP = ECGost3410NamedCurves.GetByOid(gostParams.PublicKeyParamSet); - ecSpec = new ECGOST3410Parameters( + ecSpec = new ECGost3410Parameters( new ECNamedDomainParameters( gostParams.PublicKeyParamSet, ecP), gostParams.PublicKeyParamSet, @@ -237,7 +237,7 @@ namespace Org.BouncyCastle.Security if (ecP == null) { ECDomainParameters gParam = ECGost3410NamedCurves.GetByOid(oid); - ecSpec = new ECGOST3410Parameters(new ECNamedDomainParameters( + ecSpec = new ECGost3410Parameters(new ECNamedDomainParameters( oid, gParam.Curve, gParam.G, @@ -248,7 +248,7 @@ namespace Org.BouncyCastle.Security } else { - ecSpec = new ECGOST3410Parameters(new ECNamedDomainParameters( + ecSpec = new ECGost3410Parameters(new ECNamedDomainParameters( oid, ecP.Curve, ecP.G, @@ -265,7 +265,7 @@ namespace Org.BouncyCastle.Security else { X9ECParameters ecP = X9ECParameters.GetInstance(parameters.Parameters); - ecSpec = new ECGOST3410Parameters(new ECNamedDomainParameters( + ecSpec = new ECGost3410Parameters(new ECNamedDomainParameters( algOid, ecP.Curve, ecP.G, @@ -292,7 +292,7 @@ namespace Org.BouncyCastle.Security return new ECPrivateKeyParameters( d, - new ECGOST3410Parameters( + new ECGost3410Parameters( ecSpec, gostParams.PublicKeyParamSet, gostParams.DigestParamSet, diff --git a/crypto/src/security/PublicKeyFactory.cs b/crypto/src/security/PublicKeyFactory.cs
index 3623c3ee2..7a34d71df 100644 --- a/crypto/src/security/PublicKeyFactory.cs +++ b/crypto/src/security/PublicKeyFactory.cs
@@ -261,8 +261,8 @@ namespace Org.BouncyCastle.Security Gost3410PublicKeyAlgParameters gostParams = Gost3410PublicKeyAlgParameters.GetInstance(keyInfo.AlgorithmID.Parameters); - ECGOST3410Parameters ecDomainParameters = - new ECGOST3410Parameters( + ECGost3410Parameters ecDomainParameters = + new ECGost3410Parameters( new ECNamedDomainParameters(gostParams.PublicKeyParamSet, ECGost3410NamedCurves.GetByOid(gostParams.PublicKeyParamSet)), gostParams.PublicKeyParamSet, gostParams.DigestParamSet, diff --git a/crypto/src/x509/SubjectPublicKeyInfoFactory.cs b/crypto/src/x509/SubjectPublicKeyInfoFactory.cs
index 234bcff34..395c31263 100644 --- a/crypto/src/x509/SubjectPublicKeyInfoFactory.cs +++ b/crypto/src/x509/SubjectPublicKeyInfoFactory.cs
@@ -98,9 +98,9 @@ namespace Org.BouncyCastle.X509 ECPublicKeyParameters _key = (ECPublicKeyParameters) publicKey; - if (_key.Parameters is ECGOST3410Parameters) + if (_key.Parameters is ECGost3410Parameters) { - ECGOST3410Parameters gostParams = (ECGOST3410Parameters)_key.Parameters; + ECGost3410Parameters gostParams = (ECGost3410Parameters)_key.Parameters; BigInteger bX = _key.Q.AffineXCoord.ToBigInteger(); BigInteger bY = _key.Q.AffineYCoord.ToBigInteger();