Skip to content

Commit fbae27f

Browse files
committed
Higher-level API support for Ed25519/Ed448/X25519/X448
1 parent aafad56 commit fbae27f

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+2259
-91
lines changed

crypto/BouncyCastle.Android.csproj

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -258,6 +258,7 @@
258258
<Compile Include="src\asn1\cryptopro\GOST3410ParamSetParameters.cs" />
259259
<Compile Include="src\asn1\cryptopro\GOST3410PublicKeyAlgParameters.cs" />
260260
<Compile Include="src\asn1\eac\EACObjectIdentifiers.cs" />
261+
<Compile Include="src\asn1\edec\EdECObjectIdentifiers.cs" />
261262
<Compile Include="src\asn1\esf\CertificateValues.cs" />
262263
<Compile Include="src\asn1\esf\CommitmentTypeIdentifier.cs" />
263264
<Compile Include="src\asn1\esf\CommitmentTypeIndication.cs" />
@@ -659,6 +660,7 @@
659660
<Compile Include="src\crypto\IEntropySource.cs" />
660661
<Compile Include="src\crypto\IEntropySourceProvider.cs" />
661662
<Compile Include="src\crypto\IMac.cs" />
663+
<Compile Include="src\crypto\IRawAgreement.cs" />
662664
<Compile Include="src\crypto\ISignatureFactory.cs" />
663665
<Compile Include="src\crypto\IStreamCalculator.cs" />
664666
<Compile Include="src\crypto\ISigner.cs" />
@@ -699,6 +701,8 @@
699701
<Compile Include="src\crypto\agreement\ECMqvBasicAgreement.cs" />
700702
<Compile Include="src\crypto\agreement\ECMqvWithKdfBasicAgreement.cs" />
701703
<Compile Include="src\crypto\agreement\SM2KeyExchange.cs" />
704+
<Compile Include="src\crypto\agreement\X25519Agreement.cs" />
705+
<Compile Include="src\crypto\agreement\X448Agreement.cs" />
702706
<Compile Include="src\crypto\agreement\jpake\JPakeParticipant.cs" />
703707
<Compile Include="src\crypto\agreement\jpake\JPakePrimeOrderGroup.cs" />
704708
<Compile Include="src\crypto\agreement\jpake\JPakePrimeOrderGroups.cs" />
@@ -815,6 +819,8 @@
815819
<Compile Include="src\crypto\generators\DsaKeyPairGenerator.cs" />
816820
<Compile Include="src\crypto\generators\DsaParametersGenerator.cs" />
817821
<Compile Include="src\crypto\generators\ECKeyPairGenerator.cs" />
822+
<Compile Include="src\crypto\generators\Ed25519KeyPairGenerator.cs" />
823+
<Compile Include="src\crypto\generators\Ed448KeyPairGenerator.cs" />
818824
<Compile Include="src\crypto\generators\ElGamalKeyPairGenerator.cs" />
819825
<Compile Include="src\crypto\generators\ElGamalParametersGenerator.cs" />
820826
<Compile Include="src\crypto\generators\GOST3410KeyPairGenerator.cs" />
@@ -831,6 +837,8 @@
831837
<Compile Include="src\crypto\generators\RSABlindingFactorGenerator.cs" />
832838
<Compile Include="src\crypto\generators\RsaKeyPairGenerator.cs" />
833839
<Compile Include="src\crypto\generators\SCrypt.cs" />
840+
<Compile Include="src\crypto\generators\X25519KeyPairGenerator.cs" />
841+
<Compile Include="src\crypto\generators\X448KeyPairGenerator.cs" />
834842
<Compile Include="src\crypto\io\CipherStream.cs" />
835843
<Compile Include="src\crypto\io\DigestStream.cs" />
836844
<Compile Include="src\crypto\io\MacStream.cs" />
@@ -901,6 +909,12 @@
901909
<Compile Include="src\crypto\parameters\ECKeyParameters.cs" />
902910
<Compile Include="src\crypto\parameters\ECPrivateKeyParameters.cs" />
903911
<Compile Include="src\crypto\parameters\ECPublicKeyParameters.cs" />
912+
<Compile Include="src\crypto\parameters\Ed25519KeyGenerationParameters.cs" />
913+
<Compile Include="src\crypto\parameters\Ed25519PrivateKeyParameters.cs" />
914+
<Compile Include="src\crypto\parameters\Ed25519PublicKeyParameters.cs" />
915+
<Compile Include="src\crypto\parameters\Ed448KeyGenerationParameters.cs" />
916+
<Compile Include="src\crypto\parameters\Ed448PrivateKeyParameters.cs" />
917+
<Compile Include="src\crypto\parameters\Ed448PublicKeyParameters.cs" />
904918
<Compile Include="src\crypto\parameters\ElGamalKeyGenerationParameters.cs" />
905919
<Compile Include="src\crypto\parameters\ElGamalKeyParameters.cs" />
906920
<Compile Include="src\crypto\parameters\ElGamalParameters.cs" />
@@ -939,6 +953,12 @@
939953
<Compile Include="src\crypto\parameters\SM2KeyExchangePublicParameters.cs" />
940954
<Compile Include="src\crypto\parameters\Srp6GroupParameters.cs" />
941955
<Compile Include="src\crypto\parameters\TweakableBlockCipherParameters.cs" />
956+
<Compile Include="src\crypto\parameters\X25519KeyGenerationParameters.cs" />
957+
<Compile Include="src\crypto\parameters\X25519PrivateKeyParameters.cs" />
958+
<Compile Include="src\crypto\parameters\X25519PublicKeyParameters.cs" />
959+
<Compile Include="src\crypto\parameters\X448KeyGenerationParameters.cs" />
960+
<Compile Include="src\crypto\parameters\X448PrivateKeyParameters.cs" />
961+
<Compile Include="src\crypto\parameters\X448PublicKeyParameters.cs" />
942962
<Compile Include="src\crypto\prng\CryptoApiRandomGenerator.cs" />
943963
<Compile Include="src\crypto\prng\DigestRandomGenerator.cs" />
944964
<Compile Include="src\crypto\prng\IRandomGenerator.cs" />
@@ -950,6 +970,11 @@
950970
<Compile Include="src\crypto\signers\ECDsaSigner.cs" />
951971
<Compile Include="src\crypto\signers\ECGOST3410Signer.cs" />
952972
<Compile Include="src\crypto\signers\ECNRSigner.cs" />
973+
<Compile Include="src\crypto\signers\Ed25519ctxSigner.cs" />
974+
<Compile Include="src\crypto\signers\Ed25519phSigner.cs" />
975+
<Compile Include="src\crypto\signers\Ed25519Signer.cs" />
976+
<Compile Include="src\crypto\signers\Ed448phSigner.cs" />
977+
<Compile Include="src\crypto\signers\Ed448Signer.cs" />
953978
<Compile Include="src\crypto\signers\GOST3410DigestSigner.cs" />
954979
<Compile Include="src\crypto\signers\GOST3410Signer.cs" />
955980
<Compile Include="src\crypto\signers\GenericSigner.cs" />

crypto/BouncyCastle.csproj

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -252,6 +252,7 @@
252252
<Compile Include="src\asn1\cryptopro\GOST3410ParamSetParameters.cs" />
253253
<Compile Include="src\asn1\cryptopro\GOST3410PublicKeyAlgParameters.cs" />
254254
<Compile Include="src\asn1\eac\EACObjectIdentifiers.cs" />
255+
<Compile Include="src\asn1\edec\EdECObjectIdentifiers.cs" />
255256
<Compile Include="src\asn1\esf\CertificateValues.cs" />
256257
<Compile Include="src\asn1\esf\CommitmentTypeIdentifier.cs" />
257258
<Compile Include="src\asn1\esf\CommitmentTypeIndication.cs" />
@@ -653,6 +654,7 @@
653654
<Compile Include="src\crypto\IEntropySource.cs" />
654655
<Compile Include="src\crypto\IEntropySourceProvider.cs" />
655656
<Compile Include="src\crypto\IMac.cs" />
657+
<Compile Include="src\crypto\IRawAgreement.cs" />
656658
<Compile Include="src\crypto\ISignatureFactory.cs" />
657659
<Compile Include="src\crypto\IStreamCalculator.cs" />
658660
<Compile Include="src\crypto\ISigner.cs" />
@@ -693,6 +695,8 @@
693695
<Compile Include="src\crypto\agreement\ECMqvBasicAgreement.cs" />
694696
<Compile Include="src\crypto\agreement\ECMqvWithKdfBasicAgreement.cs" />
695697
<Compile Include="src\crypto\agreement\SM2KeyExchange.cs" />
698+
<Compile Include="src\crypto\agreement\X25519Agreement.cs" />
699+
<Compile Include="src\crypto\agreement\X448Agreement.cs" />
696700
<Compile Include="src\crypto\agreement\jpake\JPakeParticipant.cs" />
697701
<Compile Include="src\crypto\agreement\jpake\JPakePrimeOrderGroup.cs" />
698702
<Compile Include="src\crypto\agreement\jpake\JPakePrimeOrderGroups.cs" />
@@ -809,6 +813,8 @@
809813
<Compile Include="src\crypto\generators\DsaKeyPairGenerator.cs" />
810814
<Compile Include="src\crypto\generators\DsaParametersGenerator.cs" />
811815
<Compile Include="src\crypto\generators\ECKeyPairGenerator.cs" />
816+
<Compile Include="src\crypto\generators\Ed25519KeyPairGenerator.cs" />
817+
<Compile Include="src\crypto\generators\Ed448KeyPairGenerator.cs" />
812818
<Compile Include="src\crypto\generators\ElGamalKeyPairGenerator.cs" />
813819
<Compile Include="src\crypto\generators\ElGamalParametersGenerator.cs" />
814820
<Compile Include="src\crypto\generators\GOST3410KeyPairGenerator.cs" />
@@ -825,6 +831,8 @@
825831
<Compile Include="src\crypto\generators\RSABlindingFactorGenerator.cs" />
826832
<Compile Include="src\crypto\generators\RsaKeyPairGenerator.cs" />
827833
<Compile Include="src\crypto\generators\SCrypt.cs" />
834+
<Compile Include="src\crypto\generators\X25519KeyPairGenerator.cs" />
835+
<Compile Include="src\crypto\generators\X448KeyPairGenerator.cs" />
828836
<Compile Include="src\crypto\io\CipherStream.cs" />
829837
<Compile Include="src\crypto\io\DigestStream.cs" />
830838
<Compile Include="src\crypto\io\MacStream.cs" />
@@ -895,6 +903,12 @@
895903
<Compile Include="src\crypto\parameters\ECKeyParameters.cs" />
896904
<Compile Include="src\crypto\parameters\ECPrivateKeyParameters.cs" />
897905
<Compile Include="src\crypto\parameters\ECPublicKeyParameters.cs" />
906+
<Compile Include="src\crypto\parameters\Ed25519KeyGenerationParameters.cs" />
907+
<Compile Include="src\crypto\parameters\Ed25519PrivateKeyParameters.cs" />
908+
<Compile Include="src\crypto\parameters\Ed25519PublicKeyParameters.cs" />
909+
<Compile Include="src\crypto\parameters\Ed448KeyGenerationParameters.cs" />
910+
<Compile Include="src\crypto\parameters\Ed448PrivateKeyParameters.cs" />
911+
<Compile Include="src\crypto\parameters\Ed448PublicKeyParameters.cs" />
898912
<Compile Include="src\crypto\parameters\ElGamalKeyGenerationParameters.cs" />
899913
<Compile Include="src\crypto\parameters\ElGamalKeyParameters.cs" />
900914
<Compile Include="src\crypto\parameters\ElGamalParameters.cs" />
@@ -933,6 +947,12 @@
933947
<Compile Include="src\crypto\parameters\SM2KeyExchangePublicParameters.cs" />
934948
<Compile Include="src\crypto\parameters\Srp6GroupParameters.cs" />
935949
<Compile Include="src\crypto\parameters\TweakableBlockCipherParameters.cs" />
950+
<Compile Include="src\crypto\parameters\X25519KeyGenerationParameters.cs" />
951+
<Compile Include="src\crypto\parameters\X25519PrivateKeyParameters.cs" />
952+
<Compile Include="src\crypto\parameters\X25519PublicKeyParameters.cs" />
953+
<Compile Include="src\crypto\parameters\X448KeyGenerationParameters.cs" />
954+
<Compile Include="src\crypto\parameters\X448PrivateKeyParameters.cs" />
955+
<Compile Include="src\crypto\parameters\X448PublicKeyParameters.cs" />
936956
<Compile Include="src\crypto\prng\CryptoApiRandomGenerator.cs" />
937957
<Compile Include="src\crypto\prng\DigestRandomGenerator.cs" />
938958
<Compile Include="src\crypto\prng\IRandomGenerator.cs" />
@@ -944,6 +964,11 @@
944964
<Compile Include="src\crypto\signers\ECDsaSigner.cs" />
945965
<Compile Include="src\crypto\signers\ECGOST3410Signer.cs" />
946966
<Compile Include="src\crypto\signers\ECNRSigner.cs" />
967+
<Compile Include="src\crypto\signers\Ed25519ctxSigner.cs" />
968+
<Compile Include="src\crypto\signers\Ed25519phSigner.cs" />
969+
<Compile Include="src\crypto\signers\Ed25519Signer.cs" />
970+
<Compile Include="src\crypto\signers\Ed448phSigner.cs" />
971+
<Compile Include="src\crypto\signers\Ed448Signer.cs" />
947972
<Compile Include="src\crypto\signers\GOST3410DigestSigner.cs" />
948973
<Compile Include="src\crypto\signers\GOST3410Signer.cs" />
949974
<Compile Include="src\crypto\signers\GenericSigner.cs" />

crypto/BouncyCastle.iOS.csproj

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -253,6 +253,7 @@
253253
<Compile Include="src\asn1\cryptopro\GOST3410ParamSetParameters.cs" />
254254
<Compile Include="src\asn1\cryptopro\GOST3410PublicKeyAlgParameters.cs" />
255255
<Compile Include="src\asn1\eac\EACObjectIdentifiers.cs" />
256+
<Compile Include="src\asn1\edec\EdECObjectIdentifiers.cs" />
256257
<Compile Include="src\asn1\esf\CertificateValues.cs" />
257258
<Compile Include="src\asn1\esf\CommitmentTypeIdentifier.cs" />
258259
<Compile Include="src\asn1\esf\CommitmentTypeIndication.cs" />
@@ -654,6 +655,7 @@
654655
<Compile Include="src\crypto\IEntropySource.cs" />
655656
<Compile Include="src\crypto\IEntropySourceProvider.cs" />
656657
<Compile Include="src\crypto\IMac.cs" />
658+
<Compile Include="src\crypto\IRawAgreement.cs" />
657659
<Compile Include="src\crypto\ISignatureFactory.cs" />
658660
<Compile Include="src\crypto\IStreamCalculator.cs" />
659661
<Compile Include="src\crypto\ISigner.cs" />
@@ -694,6 +696,8 @@
694696
<Compile Include="src\crypto\agreement\ECMqvBasicAgreement.cs" />
695697
<Compile Include="src\crypto\agreement\ECMqvWithKdfBasicAgreement.cs" />
696698
<Compile Include="src\crypto\agreement\SM2KeyExchange.cs" />
699+
<Compile Include="src\crypto\agreement\X25519Agreement.cs" />
700+
<Compile Include="src\crypto\agreement\X448Agreement.cs" />
697701
<Compile Include="src\crypto\agreement\jpake\JPakeParticipant.cs" />
698702
<Compile Include="src\crypto\agreement\jpake\JPakePrimeOrderGroup.cs" />
699703
<Compile Include="src\crypto\agreement\jpake\JPakePrimeOrderGroups.cs" />
@@ -810,6 +814,8 @@
810814
<Compile Include="src\crypto\generators\DsaKeyPairGenerator.cs" />
811815
<Compile Include="src\crypto\generators\DsaParametersGenerator.cs" />
812816
<Compile Include="src\crypto\generators\ECKeyPairGenerator.cs" />
817+
<Compile Include="src\crypto\generators\Ed25519KeyPairGenerator.cs" />
818+
<Compile Include="src\crypto\generators\Ed448KeyPairGenerator.cs" />
813819
<Compile Include="src\crypto\generators\ElGamalKeyPairGenerator.cs" />
814820
<Compile Include="src\crypto\generators\ElGamalParametersGenerator.cs" />
815821
<Compile Include="src\crypto\generators\GOST3410KeyPairGenerator.cs" />
@@ -826,6 +832,8 @@
826832
<Compile Include="src\crypto\generators\RSABlindingFactorGenerator.cs" />
827833
<Compile Include="src\crypto\generators\RsaKeyPairGenerator.cs" />
828834
<Compile Include="src\crypto\generators\SCrypt.cs" />
835+
<Compile Include="src\crypto\generators\X25519KeyPairGenerator.cs" />
836+
<Compile Include="src\crypto\generators\X448KeyPairGenerator.cs" />
829837
<Compile Include="src\crypto\io\CipherStream.cs" />
830838
<Compile Include="src\crypto\io\DigestStream.cs" />
831839
<Compile Include="src\crypto\io\MacStream.cs" />
@@ -896,6 +904,12 @@
896904
<Compile Include="src\crypto\parameters\ECKeyParameters.cs" />
897905
<Compile Include="src\crypto\parameters\ECPrivateKeyParameters.cs" />
898906
<Compile Include="src\crypto\parameters\ECPublicKeyParameters.cs" />
907+
<Compile Include="src\crypto\parameters\Ed25519KeyGenerationParameters.cs" />
908+
<Compile Include="src\crypto\parameters\Ed25519PrivateKeyParameters.cs" />
909+
<Compile Include="src\crypto\parameters\Ed25519PublicKeyParameters.cs" />
910+
<Compile Include="src\crypto\parameters\Ed448KeyGenerationParameters.cs" />
911+
<Compile Include="src\crypto\parameters\Ed448PrivateKeyParameters.cs" />
912+
<Compile Include="src\crypto\parameters\Ed448PublicKeyParameters.cs" />
899913
<Compile Include="src\crypto\parameters\ElGamalKeyGenerationParameters.cs" />
900914
<Compile Include="src\crypto\parameters\ElGamalKeyParameters.cs" />
901915
<Compile Include="src\crypto\parameters\ElGamalParameters.cs" />
@@ -934,6 +948,12 @@
934948
<Compile Include="src\crypto\parameters\SM2KeyExchangePublicParameters.cs" />
935949
<Compile Include="src\crypto\parameters\Srp6GroupParameters.cs" />
936950
<Compile Include="src\crypto\parameters\TweakableBlockCipherParameters.cs" />
951+
<Compile Include="src\crypto\parameters\X25519KeyGenerationParameters.cs" />
952+
<Compile Include="src\crypto\parameters\X25519PrivateKeyParameters.cs" />
953+
<Compile Include="src\crypto\parameters\X25519PublicKeyParameters.cs" />
954+
<Compile Include="src\crypto\parameters\X448KeyGenerationParameters.cs" />
955+
<Compile Include="src\crypto\parameters\X448PrivateKeyParameters.cs" />
956+
<Compile Include="src\crypto\parameters\X448PublicKeyParameters.cs" />
937957
<Compile Include="src\crypto\prng\CryptoApiRandomGenerator.cs" />
938958
<Compile Include="src\crypto\prng\DigestRandomGenerator.cs" />
939959
<Compile Include="src\crypto\prng\IRandomGenerator.cs" />
@@ -945,6 +965,11 @@
945965
<Compile Include="src\crypto\signers\ECDsaSigner.cs" />
946966
<Compile Include="src\crypto\signers\ECGOST3410Signer.cs" />
947967
<Compile Include="src\crypto\signers\ECNRSigner.cs" />
968+
<Compile Include="src\crypto\signers\Ed25519ctxSigner.cs" />
969+
<Compile Include="src\crypto\signers\Ed25519phSigner.cs" />
970+
<Compile Include="src\crypto\signers\Ed25519Signer.cs" />
971+
<Compile Include="src\crypto\signers\Ed448phSigner.cs" />
972+
<Compile Include="src\crypto\signers\Ed448Signer.cs" />
948973
<Compile Include="src\crypto\signers\GOST3410DigestSigner.cs" />
949974
<Compile Include="src\crypto\signers\GOST3410Signer.cs" />
950975
<Compile Include="src\crypto\signers\GenericSigner.cs" />

0 commit comments

Comments
 (0)