diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2017-09-28 13:02:49 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2017-09-28 13:02:49 -0400 |
| commit | 2e0e1697a8d8ed93669ffdda8e01c0c370e4c6c6 (patch) | |
| tree | 631c6ea4a28cd38362a33ec40d824ce76092f063 /Emby.Server.Implementations/Cryptography/PfxGenerator.cs | |
| parent | 2300026e84dcdbcb8b0edcc1315df3e524321909 (diff) | |
rework live stream creation
Diffstat (limited to 'Emby.Server.Implementations/Cryptography/PfxGenerator.cs')
| -rw-r--r-- | Emby.Server.Implementations/Cryptography/PfxGenerator.cs | 75 |
1 files changed, 0 insertions, 75 deletions
diff --git a/Emby.Server.Implementations/Cryptography/PfxGenerator.cs b/Emby.Server.Implementations/Cryptography/PfxGenerator.cs deleted file mode 100644 index 2d1dd649e..000000000 --- a/Emby.Server.Implementations/Cryptography/PfxGenerator.cs +++ /dev/null @@ -1,75 +0,0 @@ -using System; -using System.Collections; -using System.Security.Cryptography; - -namespace Emby.Server.Core.Cryptography -{ - public class PFXGenerator - { - // http://www.freekpaans.nl/2015/04/creating-self-signed-x-509-certificates-using-mono-security/ - public static byte[] GeneratePfx(string certificateName, string password) - { - byte[] sn = GenerateSerialNumber(); - string subject = string.Format("CN={0}", certificateName); - - DateTime notBefore = DateTime.Now; - DateTime notAfter = DateTime.Now.AddYears(20); - - RSA subjectKey = new RSACryptoServiceProvider(2048); - - - string hashName = "SHA256"; - - X509CertificateBuilder cb = new X509CertificateBuilder(3); - cb.SerialNumber = sn; - cb.IssuerName = subject; - cb.NotBefore = notBefore; - cb.NotAfter = notAfter; - cb.SubjectName = subject; - cb.SubjectPublicKey = subjectKey; - cb.Hash = hashName; - - byte[] rawcert = cb.Sign(subjectKey); - - - PKCS12 p12 = new PKCS12(); - p12.Password = password; - - Hashtable attributes = GetAttributes(); - - p12.AddCertificate(new X509Certificate(rawcert), attributes); - p12.AddPkcs8ShroudedKeyBag(subjectKey, attributes); - - return p12.GetBytes(); - } - - private static Hashtable GetAttributes() - { - ArrayList list = new ArrayList(); - // we use a fixed array to avoid endianess issues - // (in case some tools requires the ID to be 1). - list.Add(new byte[4] { 1, 0, 0, 0 }); - Hashtable attributes = new Hashtable(1); - attributes.Add(PKCS9.localKeyId, list); - return attributes; - } - - private static byte[] GenerateSerialNumber() - { - byte[] sn = Guid.NewGuid().ToByteArray(); - - //must be positive - if ((sn[0] & 0x80) == 0x80) - sn[0] -= 0x80; - return sn; - } - - public static byte[] GetCertificateForBytes(byte[] pfx, string password) - { - var pkcs = new PKCS12(pfx, password); - var cert = pkcs.GetCertificate(GetAttributes()); - - return cert.RawData; - } - } -} |
