aboutsummaryrefslogtreecommitdiff
path: root/Emby.Server.Implementations/Cryptography/PfxGenerator.cs
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2017-09-28 13:02:49 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2017-09-28 13:02:49 -0400
commit2e0e1697a8d8ed93669ffdda8e01c0c370e4c6c6 (patch)
tree631c6ea4a28cd38362a33ec40d824ce76092f063 /Emby.Server.Implementations/Cryptography/PfxGenerator.cs
parent2300026e84dcdbcb8b0edcc1315df3e524321909 (diff)
rework live stream creation
Diffstat (limited to 'Emby.Server.Implementations/Cryptography/PfxGenerator.cs')
-rw-r--r--Emby.Server.Implementations/Cryptography/PfxGenerator.cs75
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;
- }
- }
-}