Skip to content

Commit 54661c8

Browse files
committed
Refactoring in openpgp.operator.bc
1 parent 075a7bb commit 54661c8

File tree

2 files changed

+7
-14
lines changed

2 files changed

+7
-14
lines changed

pg/src/main/java/org/bouncycastle/openpgp/operator/bc/BcPublicKeyDataDecryptorFactory.java

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package org.bouncycastle.openpgp.operator.bc;
22

33
import java.io.IOException;
4-
import java.math.BigInteger;
54

65
import org.bouncycastle.asn1.cryptlib.CryptlibObjectIdentifiers;
76
import org.bouncycastle.asn1.edec.EdECObjectIdentifiers;
@@ -18,6 +17,7 @@
1817
import org.bouncycastle.crypto.InvalidCipherTextException;
1918
import org.bouncycastle.crypto.RawAgreement;
2019
import org.bouncycastle.crypto.Wrapper;
20+
import org.bouncycastle.crypto.agreement.BasicRawAgreement;
2121
import org.bouncycastle.crypto.agreement.ECDHBasicAgreement;
2222
import org.bouncycastle.crypto.agreement.X25519Agreement;
2323
import org.bouncycastle.crypto.agreement.X448Agreement;
@@ -37,7 +37,6 @@
3737
import org.bouncycastle.openpgp.operator.PGPPad;
3838
import org.bouncycastle.openpgp.operator.RFC6637Utils;
3939
import org.bouncycastle.util.Arrays;
40-
import org.bouncycastle.util.BigIntegers;
4140

4241
/**
4342
* A decryptor factory for handling public key decryption operations.
@@ -210,15 +209,11 @@ else if (ecPubKey.getCurveOID().equals(EdECObjectIdentifiers.id_X448))
210209
}
211210
else
212211
{
213-
ECDomainParameters ecParameters = ((ECPrivateKeyParameters) privKey).getParameters();
214-
212+
ECDomainParameters ecParameters = ((ECPrivateKeyParameters)privKey).getParameters();
215213
ECPublicKeyParameters ephPub = new ECPublicKeyParameters(ecParameters.getCurve().decodePoint(pEnc),
216-
ecParameters);
214+
ecParameters);
217215

218-
ECDHBasicAgreement agreement = new ECDHBasicAgreement();
219-
agreement.init(privKey);
220-
BigInteger S = agreement.calculateAgreement(ephPub);
221-
secret = BigIntegers.asUnsignedByteArray(agreement.getFieldSize(), S);
216+
secret = BcUtil.getSecret(new BasicRawAgreement(new ECDHBasicAgreement()), privKey, ephPub);
222217
}
223218
hashAlgorithm = ecPubKey.getHashAlgorithm();
224219
symmetricKeyAlgorithm = ecPubKey.getSymmetricKeyAlgorithm();

pg/src/main/java/org/bouncycastle/openpgp/operator/bc/BcPublicKeyKeyEncryptionMethodGenerator.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import org.bouncycastle.crypto.KeyGenerationParameters;
1818
import org.bouncycastle.crypto.RawAgreement;
1919
import org.bouncycastle.crypto.Wrapper;
20+
import org.bouncycastle.crypto.agreement.BasicRawAgreement;
2021
import org.bouncycastle.crypto.agreement.ECDHBasicAgreement;
2122
import org.bouncycastle.crypto.agreement.X25519Agreement;
2223
import org.bouncycastle.crypto.agreement.X448Agreement;
@@ -38,7 +39,6 @@
3839
import org.bouncycastle.openpgp.operator.PublicKeyKeyEncryptionMethodGenerator;
3940
import org.bouncycastle.openpgp.operator.RFC6637Utils;
4041
import org.bouncycastle.util.Arrays;
41-
import org.bouncycastle.util.BigIntegers;
4242

4343
/**
4444
* A method generator for supporting public key based encryption operations.
@@ -122,10 +122,8 @@ else if (ecPubKey.getCurveOID().equals(EdECObjectIdentifiers.id_X448))
122122
AsymmetricCipherKeyPair ephKp = getAsymmetricCipherKeyPair(new ECKeyPairGenerator(),
123123
new ECKeyGenerationParameters(((ECPublicKeyParameters)cryptoPublicKey).getParameters(), random));
124124

125-
ECDHBasicAgreement agreement = new ECDHBasicAgreement();
126-
agreement.init(ephKp.getPrivate());
127-
BigInteger S = agreement.calculateAgreement(cryptoPublicKey);
128-
byte[] secret = BigIntegers.asUnsignedByteArray(agreement.getFieldSize(), S);
125+
byte[] secret = BcUtil.getSecret(new BasicRawAgreement(new ECDHBasicAgreement()),
126+
ephKp.getPrivate(), cryptoPublicKey);
129127

130128
byte[] ephPubEncoding = ((ECPublicKeyParameters)ephKp.getPublic()).getQ().getEncoded(false);
131129

0 commit comments

Comments
 (0)