当前位置: 首页>>代码示例>>Java>>正文


Java RSAKeyParameters类代码示例

本文整理汇总了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();
}
 
开发者ID:Appdome,项目名称:ipack,代码行数:24,代码来源:ISO9796d2Signer.java

示例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;
}
 
开发者ID:true-gler,项目名称:ISO9796SignerVerifier,代码行数:17,代码来源:App.java

示例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();
}
 
开发者ID:ttt43ttt,项目名称:gwt-crypto,代码行数:24,代码来源:ISO9796d2Signer.java

示例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.");
    }
}
 
开发者ID:ttt43ttt,项目名称:gwt-crypto,代码行数:21,代码来源:X931SignerTest.java

示例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.");
    }
}
 
开发者ID:ttt43ttt,项目名称:gwt-crypto,代码行数:21,代码来源:X931SignerTest.java

示例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);
}
 
开发者ID:ttt43ttt,项目名称:gwt-crypto,代码行数:23,代码来源:CMSTestUtil.java

示例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);
}
 
开发者ID:ttt43ttt,项目名称:gwt-crypto,代码行数:27,代码来源:CMSTestUtil.java

示例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;
}
 
开发者ID:gavioto,项目名称:portecle,代码行数:30,代码来源:KeyPairUtil.java

示例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);
	}
}
 
开发者ID:fabiusks,项目名称:cert-services,代码行数:17,代码来源:IdentityContainer.java

示例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));
}
 
开发者ID:andy-goryachev,项目名称:PasswordSafe,代码行数:22,代码来源:Crypto.java

示例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!");
}
 
开发者ID:subshare,项目名称:subshare,代码行数:31,代码来源:CryptoRegistry.java

示例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);
}
 
开发者ID:dsaved,项目名称:africhat-platform-0.1,代码行数:23,代码来源:BouncyCastleRuntime.java

示例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();
    }
}
 
开发者ID:dsaved,项目名称:africhat-platform-0.1,代码行数:11,代码来源:BcRsaEncryptCipher.java

示例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);
    }
}
 
开发者ID:d1x,项目名称:dxcrypto,代码行数:11,代码来源:BouncyCastleRSAEngine.java

示例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);
}
 
开发者ID:credentials,项目名称:irma_future_id,代码行数:20,代码来源:BcCertTest.java


注:本文中的org.bouncycastle.crypto.params.RSAKeyParameters类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。