本文整理汇总了Java中org.bouncycastle.crypto.params.RSAKeyParameters类的典型用法代码示例。如果您正苦于以下问题:Java RSAKeyParameters类的具体用法?Java RSAKeyParameters怎么用?Java RSAKeyParameters使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
RSAKeyParameters类属于org.bouncycastle.crypto.params包,在下文中一共展示了RSAKeyParameters类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: init
import org.bouncycastle.crypto.params.RSAKeyParameters; //导入依赖的package包/类
public void init(
boolean forSigning,
CipherParameters param)
{
RSAKeyParameters kParam = (RSAKeyParameters)param;
cipher.init(forSigning, kParam);
keyBits = kParam.getModulus().bitLength();
block = new byte[(keyBits + 7) / 8];
if (trailer == TRAILER_IMPLICIT)
{
mBuf = new byte[block.length - digest.getDigestSize() - 2];
}
else
{
mBuf = new byte[block.length - digest.getDigestSize() - 3];
}
reset();
}
示例2: sign
import org.bouncycastle.crypto.params.RSAKeyParameters; //导入依赖的package包/类
private static byte[] sign() throws Exception {
RSAEngine rsa = new RSAEngine();
Digest dig = new SHA1Digest();
RSAPrivateKey privateKey = (RSAPrivateKey) getPrivate(privateKeyFilename);
BigInteger big = ((RSAKey) privateKey).getModulus();
ISO9796d2Signer eng = new ISO9796d2Signer(rsa, dig, true);
RSAKeyParameters rsaPriv = new RSAKeyParameters(true, big, privateKey.getPrivateExponent());
eng.init(true, rsaPriv);
eng.update(message[0]);
eng.update(message, 1, message.length - 1);
byte[] signature = eng.generateSignature();
return signature;
}
示例3: init
import org.bouncycastle.crypto.params.RSAKeyParameters; //导入依赖的package包/类
public void init(
boolean forSigning,
CipherParameters param)
{
RSAKeyParameters kParam = (RSAKeyParameters)param;
cipher.init(forSigning, kParam);
keyBits = kParam.getModulus().bitLength();
block = new byte[(keyBits + 7) / 8];
if (trailer == ISOTrailers.TRAILER_IMPLICIT)
{
mBuf = new byte[block.length - digest.getDigestSize() - 2];
}
else
{
mBuf = new byte[block.length - digest.getDigestSize() - 3];
}
reset();
}
示例4: shouldPassSignatureTest1
import org.bouncycastle.crypto.params.RSAKeyParameters; //导入依赖的package包/类
private void shouldPassSignatureTest1()
throws Exception
{
BigInteger n = new BigInteger("c9be1b28f8caccca65d86cc3c9bbcc13eccc059df3b80bd2292b811eff3aa0dd75e1e85c333b8e3fa9bed53bb20f5359ff4e6900c5e9a388e3a4772a583a79e2299c76582c2b27694b65e9ba22e66bfb817f8b70b22206d7d8ae488c86dbb7137c26d5eff9b33c90e6cee640630313b7a715802e15142fef498c404a8de19674974785f0f852e2d470fe85a2e54ffca9f5851f672b71df691785a5cdabe8f14aa628942147de7593b2cf962414a5b59c632c4e14f1768c0ab2e9250824beea60a3529f11bf5e070ce90a47686eb0be1086fb21f0827f55295b4a48307db0b048c05a4aec3f488c576ca6f1879d354224c7e84cbcd8e76dd217a3de54dba73c35", 16);
BigInteger e = new BigInteger("e75b1b", 16);
byte[] msg = Hex.decode("5bb0d1c0ef9b5c7af2477fe08d45523d3842a4b2db943f7033126c2a7829bacb3d2cfc6497ec91688189e81b7f8742488224ba320ce983ce9480722f2cc5bc42611f00bb6311884f660ccc244788378673532edb05284fd92e83f6f6dab406209032e6af9a33c998677933e32d6fb95fd27408940d7728f9c9c40267ca1d20ce");
byte[] sig = Hex.decode("0fe8bb8e3109a1eb7489ef35bf4c1a0780071da789c8bd226a4170538eafefdd30b732d628f0e87a0b9450051feae9754d4fb61f57862d10f0bacc4f660d13281d0cd1141c006ade5186ff7d961a4c6cd0a4b352fc1295c5afd088f80ac1f8e192ef116a010a442655fe8ff5eeacea15807906fb0f0dfa86e680d4c005872357f7ece9aa4e20b15d5f709b30f08648ecaa34f2fbf54eb6b414fa2ff6f87561f70163235e69ccb4ac82a2e46d3be214cc2ef5263b569b2d8fd839b21a9e102665105ea762bda25bb446cfd831487a6b846100dee113ae95ae64f4af22c428c87bab809541c962bb3a56d4c86588e0af4ebc7fcc66dadced311051356d3ea745f7");
RSAKeyParameters rsaPublic = new RSAKeyParameters(false, n, e);
X931Signer signer = new X931Signer(new RSAEngine(), new SHA1Digest());
signer.init(false, rsaPublic);
signer.update(msg, 0, msg.length);
if (!signer.verifySignature(sig))
{
fail("RSA X931 verify test 1 failed.");
}
}
示例5: shouldPassSignatureTest2
import org.bouncycastle.crypto.params.RSAKeyParameters; //导入依赖的package包/类
private void shouldPassSignatureTest2()
throws Exception
{
BigInteger n = new BigInteger("b746ba6c3c0be64bbe33aa55b2929b0af4e86d773d44bfe5914db9287788c4663984b61a418d2eecca30d752ff6b620a07ec72eeb2b422d2429da352407b99982800b9dd7697be6a7b1baa98ca5f4fc2fe33400f20b9dba337ac25c987804165d4a6e0ee4d18eabd6de5abdfe578cae6713ff91d16c80a5bb20217fe614d9509e75a43e1825327b9da8f0a9f6eeaa1c04b69fb4bacc073569fff4ab491becbe6d0441d437fc3fa823239c4a0f75321666b68dd3f66e2dd394089a15bcc288a68a4eb0a48e17d639743b9dea0a91cc35820544732aff253f8ca9967c609dc01c2f8cd0313a7a91cfa94ff74289a1d2b6f19d1811f4b9a65f4cce9e5759b4cc64f", 16);
BigInteger e = new BigInteger("dcbbdb", 16);
byte[] msg = Hex.decode("a5d3c8a060f897bbbc20ae0955052f37fbc70986b6e11c65075c9f457142bfa93856897c69020aa81a91b5e4f39e05cdeecc63395ab849c8262ca8bc5c96870aecb8edb0aba0024a9bdb71e06de6100344e5c318bc979ef32b8a49a8278ba99d4861bce42ebbc5c8c666aaa6cac39aff8779f2cae367620f9edd4cb1d80b6c8c");
byte[] sig = Hex.decode("39fbbd1804c689a533b0043f84da0f06081038c0fbf31e443e46a05e58f50de5198bbca40522afefaba3aed7082a6cb93b1da39f1f5a42246bf64930781948d300549bef0f8d554ecfca60a1b1ecba95a7014ee4545ad4f0c4e3a31942c6738b4ccd6244b6a21267dadf0826a5f713f13b1f5a9ab8501d957a26d4948278ac67851071a315674bdab173bfef2c2690c8373da6bf3d69f30c0e5da8883de872f59521b40793854085641adf98d13db991c5d0a8aaa0222934fa33332e90ef0b954e195cb267d6ffb36c96e14d1ec7b915a87598b4461a3146566354dc2ae748c84ee0cd46543b53ebff8cdf47725b280a1f799fb6ebb4a31ad2bdd5178250f83a");
RSAKeyParameters rsaPublic = new RSAKeyParameters(false, n, e);
X931Signer signer = new X931Signer(new RSAEngine(), new SHA224Digest());
signer.init(false, rsaPublic);
signer.update(msg, 0, msg.length);
if (!signer.verifySignature(sig))
{
fail("RSA X931 verify test 2 failed.");
}
}
示例6: makeV1Certificate
import org.bouncycastle.crypto.params.RSAKeyParameters; //导入依赖的package包/类
public static X509CertificateHolder makeV1Certificate(AsymmetricCipherKeyPair subKP, String _subDN, AsymmetricCipherKeyPair issKP, String _issDN)
throws IOException, OperatorCreationException
{
RSAKeyParameters lwPubKey = (RSAKeyParameters)subKP.getPublic();
X509v1CertificateBuilder v1CertGen = new X509v1CertificateBuilder(
new X500Name(_issDN),
allocateSerialNumber(),
new Date(System.currentTimeMillis()),
new Date(System.currentTimeMillis() + (1000L * 60 * 60 * 24 * 100)),
new X500Name(_subDN),
new SubjectPublicKeyInfo(new AlgorithmIdentifier(PKCSObjectIdentifiers.rsaEncryption, DERNull.INSTANCE), new RSAPublicKey(lwPubKey.getModulus(), lwPubKey.getExponent()))
);
AlgorithmIdentifier sigAlgId = new DefaultSignatureAlgorithmIdentifierFinder().find("SHA1WithRSAEncryption");
AlgorithmIdentifier digAlgId = new DefaultDigestAlgorithmIdentifierFinder().find(sigAlgId);
ContentSigner sigGen = new BcRSAContentSignerBuilder(sigAlgId, digAlgId).build((AsymmetricKeyParameter)issKP.getPrivate());
return v1CertGen.build(sigGen);
}
示例7: makeCertificate
import org.bouncycastle.crypto.params.RSAKeyParameters; //导入依赖的package包/类
public static X509CertificateHolder makeCertificate(AsymmetricCipherKeyPair subKP, String _subDN, AsymmetricCipherKeyPair issKP, String _issDN, boolean _ca)
throws IOException, OperatorCreationException
{
RSAKeyParameters lwPubKey = (RSAKeyParameters)subKP.getPublic();
X509v3CertificateBuilder v3CertGen = new X509v3CertificateBuilder(
new X500Name(_issDN),
allocateSerialNumber(),
new Date(System.currentTimeMillis()),
new Date(System.currentTimeMillis() + (1000L * 60 * 60 * 24 * 100)),
new X500Name(_subDN),
new SubjectPublicKeyInfo(new AlgorithmIdentifier(PKCSObjectIdentifiers.rsaEncryption, DERNull.INSTANCE), new RSAPublicKey(lwPubKey.getModulus(), lwPubKey.getExponent()))
);
AlgorithmIdentifier sigAlgId = new DefaultSignatureAlgorithmIdentifierFinder().find("SHA1WithRSAEncryption");
AlgorithmIdentifier digAlgId = new DefaultDigestAlgorithmIdentifierFinder().find(sigAlgId);
ContentSigner sigGen = new BcRSAContentSignerBuilder(sigAlgId, digAlgId).build((AsymmetricKeyParameter)issKP.getPrivate());
v3CertGen.addExtension(
X509Extension.basicConstraints,
false,
new BasicConstraints(_ca));
return v3CertGen.build(sigGen);
}
示例8: getKeyLength
import org.bouncycastle.crypto.params.RSAKeyParameters; //导入依赖的package包/类
/**
* Get the key size of a key represented by key parameters.
*
* @param keyParams The key parameters
* @return The key size, {@link #UNKNOWN_KEY_SIZE} if not known
*/
public static int getKeyLength(AsymmetricKeyParameter keyParams)
{
if (keyParams instanceof RSAKeyParameters)
{
return ((RSAKeyParameters) keyParams).getModulus().bitLength();
}
else if (keyParams instanceof DSAKeyParameters)
{
return ((DSAKeyParameters) keyParams).getParameters().getP().bitLength();
}
else if (keyParams instanceof DHKeyParameters)
{
return ((DHKeyParameters) keyParams).getParameters().getP().bitLength();
}
else if (keyParams instanceof ECKeyParameters)
{
// TODO: how to get key length from these?
return UNKNOWN_KEY_SIZE;
}
LOG.warning("Don't know how to get key size from parameters " + keyParams);
return UNKNOWN_KEY_SIZE;
}
示例9: getPublicKey
import org.bouncycastle.crypto.params.RSAKeyParameters; //导入依赖的package包/类
public PublicKey getPublicKey() {
try {
SubjectPublicKeyInfo subjectPublicKeyInfo = getCertificate().getSubjectPublicKeyInfo();
RSAKeyParameters rsa = (RSAKeyParameters) PublicKeyFactory.createKey(subjectPublicKeyInfo);
RSAPublicKeySpec rsaSpec = new RSAPublicKeySpec(rsa.getModulus(), rsa.getExponent());
KeyFactory kf = KeyFactory.getInstance(DEFAULT_KEY_ALG);
PublicKey rsaPub = kf.generatePublic(rsaSpec);
return rsaPub;
} catch (Exception e) {
throw new RuntimeException("Error while getting Public Key: " + e.getMessage(), e);
}
}
示例10: createRSAKeyPair
import org.bouncycastle.crypto.params.RSAKeyParameters; //导入依赖的package包/类
/**
* Generates RSA key pair with the specified key size in bits and strength.
* See http://stackoverflow.com/questions/3087049/bouncy-castle-rsa-keypair-generation-using-lightweight-api
* suggested strength = 80000
* keySizeBits = 4096
*/
public static AKeyPair createRSAKeyPair(int keySizeBits, int strength) throws Exception
{
BigInteger publicExponent = BigInteger.valueOf(0x10001);
SecureRandom rnd = new SecureRandom();
RSAKeyGenerationParameters p = new RSAKeyGenerationParameters(publicExponent, rnd, keySizeBits, strength);
RSAKeyPairGenerator g = new RSAKeyPairGenerator();
g.init(p);
AsymmetricCipherKeyPair kp = g.generateKeyPair();
RSAPrivateCrtKeyParameters pri = (RSAPrivateCrtKeyParameters)kp.getPrivate();
RSAKeyParameters pub = (RSAKeyParameters)kp.getPublic();
return new AKeyPair(new APrivateKey(pri), new APublicKey(pub));
}
示例11: encodePublicKey
import org.bouncycastle.crypto.params.RSAKeyParameters; //导入依赖的package包/类
/**
* Encode (serialise) a public key in order to store it or transport it over a network.
* @param publicKey the public key to be encoded; must not be <code>null</code>.
* @return the encoded (serialised) form of the public key. Can be passed to {@link #decodePublicKey(byte[])} to
* reverse this method.
* @see #decodePublicKey(byte[])
* @see #encodePrivateKey(CipherParameters)
*/
public byte[] encodePublicKey(final CipherParameters publicKey)
{
if (publicKey == null)
throw new IllegalArgumentException("publicKey == null");
// TODO use a class-based map or similar registry!
try {
if (publicKey instanceof RSAKeyParameters) {
final RSAKeyParameters rsaPublicKey = (RSAKeyParameters) publicKey;
final SubjectPublicKeyInfo info = new SubjectPublicKeyInfo(
new AlgorithmIdentifier(PKCSObjectIdentifiers.rsaEncryption, DERNull.INSTANCE),
new RSAPublicKey(rsaPublicKey.getModulus(), rsaPublicKey.getExponent()).toASN1Primitive()
);
return info.getEncoded();
}
} catch (final IOException x) {
throw new RuntimeException(x);
}
throw new UnsupportedOperationException("publicKey.class=\"" + publicKey.getClass().getName() + "\" not yet supported!");
}
示例12: generateRSA1024KeyPair
import org.bouncycastle.crypto.params.RSAKeyParameters; //导入依赖的package包/类
@Override
public CryptoKeyPair generateRSA1024KeyPair() {
RSAKeyPairGenerator generator = new RSAKeyPairGenerator();
generator.init(new RSAKeyGenerationParameters(
RSA_EXPONENT,
RuntimeRandomProvider.INSTANCE,
RSA_1024_STREIGHT,
RSA_CERTAINITY));
Log.d("RSA", "Starting key generation...");
AsymmetricCipherKeyPair res = generator.generateKeyPair();
// Building x.509 public key
RSAKeyParameters rsaPublicKey = (RSAKeyParameters) res.getPublic();
byte[] publicKey = new X509RsaPublicKey(rsaPublicKey.getModulus(),
rsaPublicKey.getExponent()).serialize();
// Building PKCS#8 key
RSAPrivateCrtKeyParameters parameter = (RSAPrivateCrtKeyParameters) res.getPrivate();
byte[] privateKey = new PKS8RsaPrivateKey(parameter.getModulus(), parameter.getExponent()).serialize();
return new CryptoKeyPair(publicKey, privateKey);
}
示例13: BcRsaEncryptCipher
import org.bouncycastle.crypto.params.RSAKeyParameters; //导入依赖的package包/类
public BcRsaEncryptCipher(byte[] publicKey) {
try {
X509RsaPublicKey key = new X509RsaPublicKey(publicKey);
RSAKeyParameters param = new RSAKeyParameters(false, key.getModulus(), key.getExponent());
cipher = new OAEPEncoding(new RSAEngine(), new SHA1Digest());
cipher.init(true, new ParametersWithRandom(param, RuntimeRandomProvider.INSTANCE));
} catch (Exception e) {
e.printStackTrace();
}
}
示例14: doOperation
import org.bouncycastle.crypto.params.RSAKeyParameters; //导入依赖的package包/类
private byte[] doOperation(byte[] input, boolean isEncrypt) {
AsymmetricBlockCipher cipher = new OAEPEncoding(new RSAEngine(), new SHA256Digest(), new SHA1Digest(), null);
RSAKeyParameters key = isEncrypt ? publicKey : privateKey;
cipher.init(isEncrypt, key);
try {
return cipher.processBlock(input, 0, input.length);
} catch (InvalidCipherTextException e) {
throw new EncryptionException("Encryption fails", e);
}
}
示例15: generateLongFixedKeys
import org.bouncycastle.crypto.params.RSAKeyParameters; //导入依赖的package包/类
private AsymmetricCipherKeyPair generateLongFixedKeys()
{
RSAKeyParameters pubKeySpec = new RSAKeyParameters(
false,
new BigInteger("a56e4a0e701017589a5187dc7ea841d156f2ec0e36ad52a44dfeb1e61f7ad991d8c51056ffedb162b4c0f283a12a88a394dff526ab7291cbb307ceabfce0b1dfd5cd9508096d5b2b8b6df5d671ef6377c0921cb23c270a70e2598e6ff89d19f105acc2d3f0cb35f29280e1386b6f64c4ef22e1e1f20d0ce8cffb2249bd9a2137",16),
new BigInteger("010001",16));
RSAKeyParameters privKeySpec = new RSAPrivateCrtKeyParameters(
new BigInteger("a56e4a0e701017589a5187dc7ea841d156f2ec0e36ad52a44dfeb1e61f7ad991d8c51056ffedb162b4c0f283a12a88a394dff526ab7291cbb307ceabfce0b1dfd5cd9508096d5b2b8b6df5d671ef6377c0921cb23c270a70e2598e6ff89d19f105acc2d3f0cb35f29280e1386b6f64c4ef22e1e1f20d0ce8cffb2249bd9a2137",16),
new BigInteger("010001",16),
new BigInteger("33a5042a90b27d4f5451ca9bbbd0b44771a101af884340aef9885f2a4bbe92e894a724ac3c568c8f97853ad07c0266c8c6a3ca0929f1e8f11231884429fc4d9ae55fee896a10ce707c3ed7e734e44727a39574501a532683109c2abacaba283c31b4bd2f53c3ee37e352cee34f9e503bd80c0622ad79c6dcee883547c6a3b325",16),
new BigInteger("e7e8942720a877517273a356053ea2a1bc0c94aa72d55c6e86296b2dfc967948c0a72cbccca7eacb35706e09a1df55a1535bd9b3cc34160b3b6dcd3eda8e6443",16),
new BigInteger("b69dca1cf7d4d7ec81e75b90fcca874abcde123fd2700180aa90479b6e48de8d67ed24f9f19d85ba275874f542cd20dc723e6963364a1f9425452b269a6799fd",16),
new BigInteger("28fa13938655be1f8a159cbaca5a72ea190c30089e19cd274a556f36c4f6e19f554b34c077790427bbdd8dd3ede2448328f385d81b30e8e43b2fffa027861979",16),
new BigInteger("1a8b38f398fa712049898d7fb79ee0a77668791299cdfa09efc0e507acb21ed74301ef5bfd48be455eaeb6e1678255827580a8e4e8e14151d1510a82a3f2e729",16),
new BigInteger("27156aba4126d24a81f3a528cbfb27f56886f840a9f6e86e17a44b94fe9319584b8e22fdde1e5a2e3bd8aa5ba8d8584194eb2190acf832b847f13a3d24a79f4d",16));
return new AsymmetricCipherKeyPair(pubKeySpec, privKeySpec);
}