//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: //ORIGINAL LINE: public void createSelfSignedCertificate(java.io.File certificatePath, java.io.File privateKeyPath, String hostName) throws java.security.GeneralSecurityException, java.io.IOException, org.bouncycastle.operator.OperatorCreationException public virtual void CreateSelfSignedCertificate(File certificatePath, File privateKeyPath, string hostName) { InstallCleanupHook(certificatePath, privateKeyPath); KeyPairGenerator keyGen = KeyPairGenerator.getInstance(DEFAULT_ENCRYPTION); keyGen.initialize(2048, _random); KeyPair keypair = keyGen.generateKeyPair(); // Prepare the information required for generating an X.509 certificate. X500Name owner = new X500Name("CN=" + hostName); X509v3CertificateBuilder builder = new JcaX509v3CertificateBuilder(owner, new BigInteger(64, _random), _notBefore, _notAfter, owner, keypair.Public); // Subject alternative name (part of SNI extension, used for hostname verification) GeneralNames subjectAlternativeName = new GeneralNames(new GeneralName(GeneralName.dNSName, hostName)); builder.addExtension(Extension.subjectAlternativeName, false, subjectAlternativeName); PrivateKey privateKey = keypair.Private; ContentSigner signer = (new JcaContentSignerBuilder("SHA512WithRSAEncryption")).build(privateKey); X509CertificateHolder certHolder = builder.build(signer); X509Certificate cert = (new JcaX509CertificateConverter()).setProvider(_provider).getCertificate(certHolder); //check so that cert is valid cert.verify(keypair.Public); //write to disk WritePem("CERTIFICATE", cert.Encoded, certificatePath); WritePem("PRIVATE KEY", privateKey.Encoded, privateKeyPath); // Mark as done so we don't clean up certificates _cleanupRequired = false; }
/// <summary> /// Generate a new random decrypt key for RSA based on the given params. /// </summary> /// /// <param name="params">The key params with the key size (in bits).</param> /// <returns>The new decrypt key (PKCS8-encoded private key).</returns> public static DecryptKey generateKey(RsaKeyParams paras) { KeyPairGenerator generator = System.KeyPairGenerator.getInstance("RSA"); generator.initialize(paras.getKeySize()); KeyPair pair = generator.generateKeyPair(); return(new DecryptKey(new Blob(pair.getPrivate().getEncoded(), false))); }
/// <summary> /// Generate a pair of asymmetric keys. /// </summary> /// /// <param name="keyName">The name of the key pair.</param> /// <param name="params">The parameters of the key.</param> /// <exception cref="System.Security.SecurityException"></exception> public sealed override void generateKeyPair(Name keyName, KeyParams paras) { if (doesKeyExist(keyName, net.named_data.jndn.security.KeyClass.PUBLIC)) { throw new SecurityException("Public Key already exists"); } if (doesKeyExist(keyName, net.named_data.jndn.security.KeyClass.PRIVATE)) { throw new SecurityException("Private Key already exists"); } String keyAlgorithm; int keySize; if (paras.getKeyType() == net.named_data.jndn.security.KeyType.RSA) { keyAlgorithm = "RSA"; keySize = ((RsaKeyParams)paras).getKeySize(); } else if (paras.getKeyType() == net.named_data.jndn.security.KeyType.EC) { keyAlgorithm = "EC"; keySize = ((EcKeyParams)paras).getKeySize(); } else { throw new SecurityException("Cannot generate a key pair of type " + paras.getKeyType()); } KeyPairGenerator generator = null; try { generator = System.KeyPairGenerator.getInstance(keyAlgorithm); } catch (Exception e) { throw new SecurityException( "FilePrivateKeyStorage: Could not create the key generator: " + e.Message); } // generate generator.initialize(keySize); KeyPair pair = generator.generateKeyPair(); // save this.write(keyName, net.named_data.jndn.security.KeyClass.PRIVATE, pair.getPrivate().getEncoded()); this.write(keyName, net.named_data.jndn.security.KeyClass.PUBLIC, pair.getPublic().getEncoded()); }
public virtual void setCurve() { try { curve = new ECCurve.Fp(System.Numerics.BigInteger.Parse("FFFFFFFFFFFFFFFF00000001FFFFFFFFFFFFFFFF", System.Globalization.NumberStyles.HexNumber), System.Numerics.BigInteger.Parse("FFFFFFFFFFFFFFFF00000001FFFFFFFFFFFFFFFC", System.Globalization.NumberStyles.HexNumber), System.Numerics.BigInteger.Parse("A68BEDC33418029C1D3CE33B9A321FCCBB9E0F0B", System.Globalization.NumberStyles.HexNumber)); // b spec = new ECParameterSpec(curve, curve.createPoint(System.Numerics.BigInteger.Parse("0128EC4256487FD8FDF64E2437BC0A1F6D5AFDE2C", System.Globalization.NumberStyles.HexNumber), System.Numerics.BigInteger.Parse("05958557EB1DB001260425524DBC379D5AC5F4ADF", System.Globalization.NumberStyles.HexNumber), false), System.Numerics.BigInteger.Parse("00FFFFFFFFFFFFFFFEFFFFB5AE3C523E63944F2127", System.Globalization.NumberStyles.HexNumber)); // n g = KeyPairGenerator.getInstance("ECDSA", "BC"); f = KeyFactory.getInstance("ECDSA", "BC"); g.initialize(spec, new SecureRandom()); keyPair = g.generateKeyPair(); } catch (Exception e) { Console.WriteLine("setCurve", e); } }
/// <summary> /// Generate a key pair according to keyParams and return a new TpmPrivateKey /// with the private key. You can get the public key with derivePublicKey. /// </summary> /// /// <param name="keyParams">The parameters of the key.</param> /// <returns>A new TpmPrivateKey.</returns> /// <exception cref="System.ArgumentException">if the key type is not supported.</exception> /// <exception cref="TpmPrivateKey.Error">for an invalid key size, or an error generating.</exception> public static TpmPrivateKey generatePrivateKey(KeyParams keyParams) { String keyAlgorithm; int keySize; if (keyParams.getKeyType() == net.named_data.jndn.security.KeyType.RSA) { keyAlgorithm = "RSA"; keySize = ((RsaKeyParams)keyParams).getKeySize(); } else if (keyParams.getKeyType() == net.named_data.jndn.security.KeyType.EC) { keyAlgorithm = "EC"; keySize = ((EcKeyParams)keyParams).getKeySize(); } else { throw new ArgumentException( "Cannot generate a key pair of type " + keyParams.getKeyType()); } KeyPairGenerator generator = null; try { generator = System.KeyPairGenerator.getInstance(keyAlgorithm); } catch (Exception e) { throw new TpmPrivateKey.Error( "TpmPrivateKey: Could not create the key generator: " + e.Message); } generator.initialize(keySize); KeyPair pair = generator.generateKeyPair(); TpmPrivateKey result = new TpmPrivateKey(); result.keyType_ = keyParams.getKeyType(); result.privateKey_ = pair.getPrivate(); return(result); }
public static void Main(string[] args) { // X:\jsc.svn\examples\java\hybrid\JVMCLRRSACryptoServiceProviderExport\JVMCLRRSACryptoServiceProviderExport\Program.cs // jsc needs to see args to make Main into main for javac.. // X:\jsc.svn\examples\javascript\Test\TestWebCryptoKeyExport\TestWebCryptoKeyExport\ApplicationWebService.cs // see also> // X:\jsc.svn\examples\javascript\android\AndroidBroadcastLogger\AndroidBroadcastLogger\ApplicationWebService.cs System.Console.WriteLine( typeof(object).AssemblyQualifiedName ); #region Do a release build to create a hybrid jvmclr program. if (typeof(object).FullName != "java.lang.Object") { System.Console.WriteLine("Do a release build to create a hybrid jvmclr program."); Debugger.Break(); return; } #endregion // X:\jsc.svn\examples\java\hybrid\JVMCLRCryptoKeyGenerate\JVMCLRCryptoKeyGenerate\Program.cs try { var sw = Stopwatch.StartNew(); KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA"); keyGen.initialize(2048); KeyPair keyPair = keyGen.generateKeyPair(); Console.WriteLine("after generateKeyPair " + new { sw.ElapsedMilliseconds }); // after generateKeyPair { ElapsedMilliseconds = 1791 } // namespace java.security PublicKey publicKey = keyPair.getPublic(); RSAPublicKey rsapublicKey = publicKey as RSAPublicKey; //{ rsapublicKey = Sun RSA public key, 2048 bits // modulus: 29949193980909979274189480704243019682286346329170638184791375272041884154536539019391076867658592793782845145577141321856957216387377877051532863326545210198967756169805262894313096770941282431904979238566400967478467777198159929565518234047418214901842157765701592238170194579437999716462637123573832853765849987776635905960851094995851522216218636702303980441225891149285848171423753401798137735808260588593837046934598499190528986687550800243662647128332067862280439741602381552218867646299789687315601743815760887214608692897973056730201700896528249989739260099353181532267384971060647420834129903424358272703969 // public exponent: 65537 } //4 Console.WriteLine( new { rsapublicKey } ); var rsaModulusBytes = (byte[])(object)rsapublicKey.getModulus().toByteArray(); var rsaPublicExponent = (byte[])(object)rsapublicKey.getPublicExponent().toByteArray(); var encByte = (sbyte[])(object)CLRProgram.CLRMain( m: rsaModulusBytes, e: rsaPublicExponent ); //System.Console.WriteLine("Public Key - " + publicKey.ToString()); //System.Console.WriteLine("Private Key - " + privateKey.ToString()); System.Console.WriteLine(encByte.Length.ToString()); //Decrypt Cipher rsaCipher = Cipher.getInstance("RSA"); PrivateKey privateKey = keyPair.getPrivate(); rsaCipher.init(Cipher.DECRYPT_MODE, privateKey); sbyte[] decByte = rsaCipher.doFinal(encByte); System.Console.WriteLine(decByte.Length.ToString()); var xstring = Encoding.UTF8.GetString( (byte[])(object)decByte ); Console.WriteLine(new { xstring }); } catch (Exception ex) { System.Console.WriteLine(ex); } }
public static void Main(string[] args) { // https://sites.google.com/a/jsc-solutions.net/backlog/knowledge-base/2014/201408/20140830 // X:\jsc.svn\examples\javascript\appengine\Test\TestCryptoKeyGenerate\TestCryptoKeyGenerate\ApplicationWebService.cs // X:\jsc.svn\examples\java\hybrid\JVMCLRRSA\JVMCLRRSA\Program.cs #region Do a release build to create a hybrid jvmclr program. if (typeof(object).FullName != "java.lang.Object") { System.Console.WriteLine("Do a release build to create a hybrid jvmclr program."); Debugger.Break(); return; } #endregion System.Console.WriteLine("jvm ready! " + typeof(object).FullName); #if JCE try { var sw = Stopwatch.StartNew(); KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA"); keyGen.initialize(2048); KeyPair keyPair = keyGen.generateKeyPair(); Console.WriteLine("after generateKeyPair " + new { sw.ElapsedMilliseconds }); // after generateKeyPair { ElapsedMilliseconds = 1791 } PublicKey publicKey = keyPair.getPublic(); PrivateKey privateKey = keyPair.getPrivate(); //System.Console.WriteLine("Public Key - " + publicKey.ToString()); //System.Console.WriteLine("Private Key - " + privateKey.ToString()); var data = new sbyte[] { 0x02, 0x03, 0x04, 0x05 }; System.Console.WriteLine(data.Length.ToString()); Cipher rsaCipher = Cipher.getInstance("RSA"); //Encrypt rsaCipher.init(Cipher.ENCRYPT_MODE, publicKey); sbyte[] encByte = rsaCipher.doFinal(data); System.Console.WriteLine(encByte.Length.ToString()); //Decrypt rsaCipher.init(Cipher.DECRYPT_MODE, privateKey); sbyte[] decByte = rsaCipher.doFinal(encByte); System.Console.WriteLine(decByte.Length.ToString()); if (data.Length != decByte.Length) { for (int i = 0; i < data.Length; i++) { if (data[i] != decByte[i]) { System.Console.WriteLine("false"); } } } } catch (Exception ex) { System.Console.WriteLine(ex); } #endif //jvm ready! java.lang.Object //4 //256 //4 CLRProgram.CLRMain(); System.Console.WriteLine("jvm exit!"); }