Guest User

Untitled

a guest
Jul 16th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.37 KB | None | 0 0
  1. DateTime startDatedsa = DateTime.Today;
  2.  
  3. DateTime expiryDatedsa = DateTime.Today.AddYears(2); // Set whatever expiration date you want
  4.  
  5. BigInteger serialNumberdsa = new BigInteger(1, BitConverter.GetBytes(DateTime.Now.Ticks));
  6.  
  7.  
  8. DsaKeyPairGenerator generatordsa = new DsaKeyPairGenerator();
  9.  
  10. DsaParametersGenerator paramgen = new DsaParametersGenerator();
  11.  
  12. paramgen.Init(512, 100, new SecureRandom());
  13.  
  14. DsaKeyGenerationParameters genParamdsa = new DsaKeyGenerationParameters(new SecureRandom(), paramgen.GenerateParameters());
  15.  
  16. generatordsa.Init(genParamdsa);
  17.  
  18.  
  19. AsymmetricCipherKeyPair keyPairdsa = generatordsa.GenerateKeyPair();
  20.  
  21. DsaPrivateKeyParameters dsaprivkey2= ((DsaPrivateKeyParameters) keyPairdsa.Private);
  22.  
  23.  
  24. X509V3CertificateGenerator certGendsa = new X509V3CertificateGenerator();
  25.  
  26. X509Name dnNamedsa = new X509Name("CN= DSA with private ");
  27.  
  28. certGendsa.SetSerialNumber(serialNumberdsa);
  29.  
  30. certGendsa.SetIssuerDN(cert.IssuerDN); // a name of the issuer
  31. certGendsa.SetSubjectDN(dnNamedsa);
  32.  
  33. certGendsa.SetPublicKey(keyPairdsa.Public);
  34.  
  35. certGendsa.SetSignatureAlgorithm("sha512WithRSA");
  36.  
  37. certGendsa.SetNotBefore(startDatedsa);
  38.  
  39. certGendsa.SetNotAfter(expiryDatedsa);
  40.  
  41. Org.BouncyCastle.X509.X509Certificate certdsa = certGendsa.Generate(ackp.Private); // a private key of the issuer
  42.  
  43. certGendsa.AddExtension(X509Extensions.ExtendedKeyUsage, false, new ExtendedKeyUsage(us));
  44. certGendsa.AddExtension(X509Extensions.KeyUsage, true, new KeyUsage(KeyUsage. CrlSign|KeyUsage.KeyCertSign));
  45. certGendsa.AddExtension(X509Extensions.BasicConstraints, true, new BasicConstraints(false));
  46.  
  47. DSACryptoServiceProvider rcspdsa = new DSACryptoServiceProvider();
  48. DSAParameters parmsdsa = new DSAParameters();
  49. parmsdsa.X = dsaprivkey2.X.ToByteArrayUnsigned();
  50. parmsdsa.P= dsaprivkey2.Parameters.P.ToByteArrayUnsigned();
  51. parmsdsa.Q= dsaprivkey2.Parameters.Q.ToByteArrayUnsigned();
  52. parmsdsa.G= dsaprivkey2.Parameters.G.ToByteArrayUnsigned();
  53.  
  54. rcspdsa.ImportParameters(parmsdsa);
  55.  
  56. Pkcs12Store pkcs12Storedsa = new Pkcs12StoreBuilder().Build();
  57.  
  58. byte[] importcertds = DotNetUtilities.ToX509Certificate(certdsa).Export(System.Security.Cryptography.X509Certificates.X509ContentType.Pkcs12, "password");
  59. var importcertdsa = new X509Certificate2(importcertds, "password");
  60.  
  61. X509CertificateEntry cedsa = new X509CertificateEntry(DotNetUtilities.FromX509Certificate(importcertdsa));
  62. pkcs12Storedsa.SetCertificateEntry("DSACertificate", cedsa);
  63. pkcs12Storedsa.SetKeyEntry("DSAPrivKey", new AsymmetricKeyEntry(DotNetUtilities.GetDsaKeyPair(rcspdsa).Private), new[] { cedsa });
  64.  
  65. pkcs12Storedsa.Save(File.Open("dsacert.pfx", FileMode.OpenOrCreate), "password".ToCharArray(), new SecureRandom());
  66.  
  67. rcspdsa.PersistKeyInCsp = true;
  68.  
  69. DSACryptoServiceProvider.UseMachineKeyStore = true;
  70. importcertdsa.PrivateKey = rcspdsa;// hear is the exception
  71.  
  72. var storedsa = new X509Store("Root", StoreLocation.CurrentUser);
  73. storedsa.Open(OpenFlags.ReadWrite);
  74. storedsa.Add(importcertdsa);
  75. storedsa.Close();
Add Comment
Please, Sign In to add comment