當前位置: 首頁>>代碼示例>>Java>>正文


Java KeyPairGenerator.initialize方法代碼示例

本文整理匯總了Java中java.security.KeyPairGenerator.initialize方法的典型用法代碼示例。如果您正苦於以下問題:Java KeyPairGenerator.initialize方法的具體用法?Java KeyPairGenerator.initialize怎麽用?Java KeyPairGenerator.initialize使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在java.security.KeyPairGenerator的用法示例。


在下文中一共展示了KeyPairGenerator.initialize方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: test

import java.security.KeyPairGenerator; //導入方法依賴的package包/類
public static void test() throws Exception {
	KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA");

    keyGen.initialize(512, new SecureRandom());

    KeyPair keyPair = keyGen.generateKeyPair();
    Signature signature = Signature.getInstance("SHA1withRSA");

    signature.initSign(keyPair.getPrivate());

    byte[] message = "abc".getBytes();
    signature.update(message);

    byte[] sigBytes = signature.sign();
    signature.initVerify(keyPair.getPublic());
    signature.update(message);
    System.out.println(signature.verify(sigBytes));
	
}
 
開發者ID:atul19971,項目名稱:crypto4ora,代碼行數:20,代碼來源:Client.java

示例2: createKeys

import java.security.KeyPairGenerator; //導入方法依賴的package包/類
/**
 * Creates a public and private key and stores it using the AndroidKeyStore,
 * so that only this application will be able to access the keys.
 */
@SuppressWarnings("deprecation")
public void createKeys() throws Exception {
    KeyStore keyStore = KeyStore.getInstance(ANDROID_KEY_STORE);
    keyStore.load(null);
    if (keyStore.containsAlias(alias)) {
        Log.d(TAG, "[containsAlias]");
        return;
    }

    Calendar start = Calendar.getInstance();
    Calendar end = Calendar.getInstance();
    end.add(Calendar.YEAR, 30);
    KeyPairGeneratorSpec spec = new KeyPairGeneratorSpec.Builder(context)
        .setAlias(alias)
        .setSubject(new X500Principal("CN=" + alias))
        .setSerialNumber(BigInteger.TEN)
        .setStartDate(start.getTime())
        .setEndDate(end.getTime())
        .build();
    KeyPairGenerator generator = KeyPairGenerator.getInstance(TYPE_RSA, ANDROID_KEY_STORE);
    generator.initialize(spec);
    KeyPair keyPair = generator.generateKeyPair();
    Log.d(TAG, "Public Key is: " + keyPair.getPublic().toString());
}
 
開發者ID:drakeet,項目名稱:rebase-android,代碼行數:29,代碼來源:BlackBox.java

示例3: checkSignatureForToken

import java.security.KeyPairGenerator; //導入方法依賴的package包/類
@Test
public void checkSignatureForToken() throws Exception {
  KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA");
  keyGen.initialize(512);
  KeyPair keys = keyGen.genKeyPair();

  FixedClock clock = new FixedClock(2002L);

  FirebaseTokenFactory tokenFactory = new FirebaseTokenFactory(FACTORY, clock);

  String jwt =
      tokenFactory.createSignedCustomAuthTokenForUser(
          USER_ID, EXTRA_CLAIMS, ISSUER, keys.getPrivate());

  FirebaseCustomAuthToken signedJwt = FirebaseCustomAuthToken.parse(FACTORY, jwt);
  assertEquals("RS256", signedJwt.getHeader().getAlgorithm());
  assertEquals(ISSUER, signedJwt.getPayload().getIssuer());
  assertEquals(ISSUER, signedJwt.getPayload().getSubject());
  assertEquals(USER_ID, signedJwt.getPayload().getUid());
  assertEquals(2L, signedJwt.getPayload().getIssuedAtTimeSeconds().longValue());

  assertTrue(TestUtils.verifySignature(signedJwt, ImmutableList.of(keys.getPublic())));
}
 
開發者ID:firebase,項目名稱:firebase-admin-java,代碼行數:24,代碼來源:FirebaseTokenFactoryTest.java

示例4: testKeyPairGeneratorEccMultipleKeyGen

import java.security.KeyPairGenerator; //導入方法依賴的package包/類
@Test
public void testKeyPairGeneratorEccMultipleKeyGen()
    throws NoSuchProviderException, NoSuchAlgorithmException,
           InvalidAlgorithmParameterException {

    if (enabledCurves.size() > 0) {

        KeyPairGenerator kpg =
            KeyPairGenerator.getInstance("EC", "wolfJCE");

        ECGenParameterSpec ecSpec =
            new ECGenParameterSpec(enabledCurves.get(0));
        kpg.initialize(ecSpec);

        KeyPair kp1 = kpg.generateKeyPair();
        KeyPair kp2 = kpg.generateKeyPair();
    }
}
 
開發者ID:wolfSSL,項目名稱:wolfcrypt-jni,代碼行數:19,代碼來源:WolfCryptKeyPairGeneratorTest.java

示例5: testKeyPairGeneratorEccKeyGenAllCurves

import java.security.KeyPairGenerator; //導入方法依賴的package包/類
@Test
public void testKeyPairGeneratorEccKeyGenAllCurves()
    throws NoSuchProviderException, NoSuchAlgorithmException,
           InvalidAlgorithmParameterException {

    /* try generating keys for all supported curves */
    for (int i = 0; i < enabledCurves.size(); i++) {

        KeyPairGenerator kpg =
            KeyPairGenerator.getInstance("EC", "wolfJCE");

        ECGenParameterSpec ecSpec =
            new ECGenParameterSpec(enabledCurves.get(i));
        kpg.initialize(ecSpec);

        KeyPair kp = kpg.generateKeyPair();
    }
}
 
開發者ID:wolfSSL,項目名稱:wolfcrypt-jni,代碼行數:19,代碼來源:WolfCryptKeyPairGeneratorTest.java

示例6: writeReadTest

import java.security.KeyPairGenerator; //導入方法依賴的package包/類
@Test
public void writeReadTest() throws Exception {
  for (ValueSigner signer : ValueSigner.values()) {
    KeyPairGenerator gen = KeyPairGenerator.getInstance(signer.getKeyGenerationAlgorithm());
    if (signer == ValueSigner.ECDSA) {
      gen.initialize(256);
    } else {
      gen.initialize(1024);
    }

    KeyPair pair = gen.generateKeyPair();
    byte[] keyId = String.format("%s_%s", gen.getAlgorithm(), "test").getBytes(ENCODING_CHARSET);
    LocalSignatureKeyContainer container = new LocalSignatureKeyContainer(pair, keyId);

    File file = folder.newFile();
    FileWriter writer = new FileWriter(file);
    container.write(writer);
    writer.close();

    LocalSignatureKeyContainer container2 = LocalSignatureKeyContainer.read(new FileReader(file));
    assertThat("has matching keys", container2.getSigningKey().key.getEncoded(), equalTo(container.getSigningKey().key.getEncoded()));
    assertThat("has matching keys", container2.getSigningKey().id, equalTo(container.getSigningKey().id));
    assertThat("has matching keys", container2.getVerifyingKey(keyId).getEncoded(), equalTo(container.getVerifyingKey(keyId).getEncoded()));
  }

}
 
開發者ID:mit-ll,項目名稱:PACE,代碼行數:27,代碼來源:LocalSignatureKeyContainerTest.java

示例7: generateEphemeralKeys

import java.security.KeyPairGenerator; //導入方法依賴的package包/類
/**
 * Generates a random key pair based on a curve
 * @param curve the curve to use
 * @return a randomly generated KeyPair
 */
public static KeyPair generateEphemeralKeys(EllipticCurveParameters curve) {
    try {
        final ECParameterSpec curveParams = EllipticCurveParameters.encodeECParameterSpec(curve);
        final KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("EC", "BC");
        keyPairGenerator.initialize(curveParams);

        return keyPairGenerator.generateKeyPair();
    } catch (NoSuchAlgorithmException | NoSuchProviderException | InvalidAlgorithmParameterException e) {
        e.printStackTrace();
    }

    return null;
}
 
開發者ID:mDL-ILP,項目名稱:mDL-ILP,代碼行數:19,代碼來源:ECCUtils.java

示例8: generateDSAKeypair

import java.security.KeyPairGenerator; //導入方法依賴的package包/類
public static KeyPair generateDSAKeypair(int plength, int qlength, SecureRandom random)
        throws NoSuchAlgorithmException, NoSuchProviderException,
            InvalidAlgorithmParameterException {
    DSAParameterSpec dsaParamSpec = DSAParameterCache.getDSAParameterSpec(plength, qlength,
            random);
    KeyPairGenerator kpGen = getKeyPairGenerator("DSA");
    synchronized (kpGen) {
        kpGen.initialize(dsaParamSpec, random);
        return kpGen.generateKeyPair();
    }
}
 
開發者ID:xipki,項目名稱:xitk,代碼行數:12,代碼來源:KeyUtil.java

示例9: createKeyPair

import java.security.KeyPairGenerator; //導入方法依賴的package包/類
@TargetApi(23)
   public KeyPair createKeyPair(String keyName, boolean invalidatedByBiometricEnrollment) throws CryptoException
{
	KeyPair keyPair = null;

	try {
		KeyStore mKeyStore = KeyStore.getInstance(REST_AUTH_KEYSTORE_NAME);
		mKeyStore.load(null);

		KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance(
				KeyProperties.KEY_ALGORITHM_EC, REST_AUTH_KEYSTORE_NAME);


		KeyGenParameterSpec.Builder builder
				= new KeyGenParameterSpec.Builder(keyName,
				                                  KeyProperties.PURPOSE_ENCRYPT |
						                          KeyProperties.PURPOSE_DECRYPT |
						                          KeyProperties.PURPOSE_SIGN)
				.setDigests(KeyProperties.DIGEST_SHA256)
				.setAlgorithmParameterSpec(new ECGenParameterSpec(REST_AUTH_EC_CURVE))
				.setUserAuthenticationRequired(true);

           // This call is only available on API level >= 24.
		if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
			builder.setInvalidatedByBiometricEnrollment(invalidatedByBiometricEnrollment);
		}

		keyPairGenerator.initialize(builder.build());
		keyPair = keyPairGenerator.generateKeyPair();

	} catch (NoSuchAlgorithmException | NoSuchProviderException | KeyStoreException |
		   InvalidAlgorithmParameterException | CertificateException | IOException e)
	{
		throw new CryptoException(e.getMessage());
	}

	return keyPair;
}
 
開發者ID:thiscitizenis,項目名稱:citizen-sdk-android,代碼行數:39,代碼來源:CryptoService.java

示例10: getRSAKeyPair

import java.security.KeyPairGenerator; //導入方法依賴的package包/類
private static KeyPair getRSAKeyPair() {
	try {
		KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA");
		keyGen.initialize(2048);
		return keyGen.generateKeyPair();
	} catch (Exception e) {
		System.out.println("Unable to initialize RSA key pair.");
		e.printStackTrace();
		return null;
	}
}
 
開發者ID:gahana,項目名稱:edge-jwt-sample,代碼行數:12,代碼來源:JWTUtil.java

示例11: generateRSAKeyPair

import java.security.KeyPairGenerator; //導入方法依賴的package包/類
/**
 * 隨機生成RSA密鑰對
 *
 * @param keyLength
 *            密鑰長度,範圍:512~2048<br>
 *            一般1024
 * @return
 */
public static KeyPair generateRSAKeyPair(int keyLength)
{
    try
    {
        KeyPairGenerator kpg = KeyPairGenerator.getInstance(RSA);
        kpg.initialize(keyLength);
        return kpg.genKeyPair();
    } catch (NoSuchAlgorithmException e)
    {
        e.printStackTrace();
        return null;
    }
}
 
開發者ID:Herbertyy,項目名稱:HerbertyyRepository,代碼行數:22,代碼來源:RSAUtils.java

示例12: AsymmetricKeys

import java.security.KeyPairGenerator; //導入方法依賴的package包/類
public AsymmetricKeys() throws Exception {
    super(asymmetricKeyAlgorithm);
    KeyPairGenerator keygen = KeyPairGenerator.getInstance(asymmetricKeyAlgorithm);
    keygen.initialize(keySize);
    KeyPair pair = keygen.generateKeyPair();
    publicKey = pair.getPublic();
    privateKey = pair.getPrivate();
}
 
開發者ID:Baizey,項目名稱:Helpers,代碼行數:9,代碼來源:AsymmetricKeys.java

示例13: genKeyPair

import java.security.KeyPairGenerator; //導入方法依賴的package包/類
/**
 * <p>
 * 生成密鑰對(公鑰和私鑰)
 * </p>
 *
 * @return
 * @throws Exception
 */
public static Map<String, Object> genKeyPair() throws Exception {
    KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance(KEY_ALGORITHM);
    keyPairGen.initialize(1024);
    KeyPair keyPair = keyPairGen.generateKeyPair();
    RSAPublicKey publicKey = (RSAPublicKey) keyPair.getPublic();
    RSAPrivateKey privateKey = (RSAPrivateKey) keyPair.getPrivate();
    Map<String, Object> keyMap = new HashMap<String, Object>(2);
    keyMap.put(PUBLIC_KEY, publicKey);
    keyMap.put(PRIVATE_KEY, privateKey);
    return keyMap;
}
 
開發者ID:angcyo,項目名稱:RLibrary,代碼行數:20,代碼來源:RSAUtils.java

示例14: generateKey

import java.security.KeyPairGenerator; //導入方法依賴的package包/類
/**
 * Generate key which contains a pair of private and public key using 1024
 * bytes. Store the set of keys in Prvate.key and Public.key files.
 *
 * @throws NoSuchAlgorithmException
 * @throws IOException
 * @throws FileNotFoundException
 */
public static KeyPair generateKey(String publicKeyFilePath, String privateKeyFilePath) {
 try {
  final KeyPairGenerator keyGen = KeyPairGenerator.getInstance(ALGORITHM);
  keyGen.initialize(1024);
  final KeyPair key = keyGen.generateKeyPair();

  File privateKeyFile = new File(privateKeyFilePath);
  File publicKeyFile = new File(publicKeyFilePath);
  
  // Create files to store public and private key
     if (privateKeyFile.getParentFile() != null) {
   	  privateKeyFile.getParentFile().mkdirs();
     }
     privateKeyFile.createNewFile();

     if (publicKeyFile.getParentFile() != null) {
   	  publicKeyFile.getParentFile().mkdirs();
     }
     publicKeyFile.createNewFile();

     // Saving the Public key in a file
     ObjectOutputStream publicKeyOS = new ObjectOutputStream(new FileOutputStream(publicKeyFile));
     publicKeyOS.writeObject(key.getPublic());
     publicKeyOS.close();

     // Saving the Private key in a file
     ObjectOutputStream privateKeyOS = new ObjectOutputStream(new FileOutputStream(privateKeyFile));
     privateKeyOS.writeObject(key.getPrivate());
     privateKeyOS.close();
     
     return key;
 } catch (Exception e) {
  e.printStackTrace();
  
  return null;
 }
}
 
開發者ID:lukasbischof,項目名稱:Orsum-occulendi,代碼行數:46,代碼來源:RSAUtil.java

示例15: main

import java.security.KeyPairGenerator; //導入方法依賴的package包/類
@Override
public void main(Provider p) throws Exception {
    try {
        Cipher.getInstance("RSA/ECB/NoPadding", p);
    } catch (GeneralSecurityException e) {
        System.out.println("Not supported by provider, skipping");
        return;
    }

    final int KEY_LEN = 1024;
    KeyPairGenerator kpGen = KeyPairGenerator.getInstance("RSA", p);
    kpGen.initialize(KEY_LEN);
    KeyPair kp = kpGen.generateKeyPair();
    Random random = new Random();
    byte[] plainText, cipherText, recoveredText;
    plainText = new byte[KEY_LEN/8];
    random.nextBytes(plainText);
    plainText[0] = 0; // to ensure that it's less than modulus

    Cipher c1 = Cipher.getInstance("RSA/ECB/NoPadding", p);
    Cipher c2 = Cipher.getInstance("RSA/ECB/NoPadding", "SunJCE");

    c1.init(Cipher.ENCRYPT_MODE, kp.getPublic());
    c2.init(Cipher.DECRYPT_MODE, kp.getPrivate());

    cipherText = c1.doFinal(plainText);
    recoveredText = c2.doFinal(cipherText);
    if (!Arrays.equals(plainText, recoveredText)) {
        throw new RuntimeException("E/D Test against SunJCE Failed!");
    }

    c2.init(Cipher.ENCRYPT_MODE, kp.getPublic());
    c1.init(Cipher.DECRYPT_MODE, kp.getPrivate());
    cipherText = c2.doFinal(plainText);
    recoveredText = c1.doFinal(cipherText);
    if (!Arrays.equals(plainText, recoveredText)) {
        throw new RuntimeException("D/E Test against SunJCE Failed!");
    }

    System.out.println("Test Passed");
}
 
開發者ID:AdoptOpenJDK,項目名稱:openjdk-jdk10,代碼行數:42,代碼來源:TestRawRSACipher.java


注:本文中的java.security.KeyPairGenerator.initialize方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。