v/4nALBxCE+9JgEC0LnDUvKh6e96PwTpN4Rj+vWnqKT7IAp1iK/JjuqvAg6DQ2vTfv0dTlqffmHH51OyioprcT5nzxcSTsZb/9jcHScG0s3/FRIWnXeLk/fgm7mSYhjUaHNI0m1/NTTktipicjKxo71hGIg9qucCWnDum+Krh/k=AQAB9jbKxMXEruW2CfZrzhxtull4O8P47+mNsEL+9gf9QsRO1jJ77C+jmzfU6zbzjf8+ViK+q62tCMdC1ZzulwdpXQ==
x5+p198l1PkK0Ga2mRh0SIYSykENpY2aLXoyZD/iUpKYAvATm0/wvKNrE4dKJyPCA+y3hfTdgVag+SP9avvDTQ==
ISSjCvXsUfbOGG05eddN1gXxL2pj+jegQRfjpk7RAsnWKvNExzhqd5x+ZuNQyc6QH5wxun54inP4RTUI0P/IaQ==R815VQmR3RIbPqzDXzv5j6CSH6fYlcTiQRtkBsUnzhWmkd/y3XmamO+a8zJFjOCCx9CcjpVuGziivBqi65lVPQ==iYiu0KwMWI/dyqN3RJYUzuuLj02/oTD1pYpwo2rvNCXU1Q5VscOeu2DpNg1gWqI+1RrRCsEoaTNzXB1xtKNlSw==nIfh1LYF8fjRBgMdAH/zt9UKHWiaCnc+jXzq5tkR8HVSKTVdzitD8bl1JgAfFQD8VjSXiCJqluexy/B5SGrCXQ49c78NIQj0hD+J13Y8/E0fUbW1QYbhj6Ff7oHyhaYe1WOQfkp2t/h+llHOdt1HRf7bt7dUknYp7m8bQKGxoYE=";
-
- public static void CreateSelfSignCertificatePfx(
- string fileName,
- string hostname,
- string password,
- ILogger logger)
- {
- if (string.IsNullOrWhiteSpace(fileName))
- {
- throw new ArgumentNullException("fileName");
- }
-
- byte[] sn = Guid.NewGuid().ToByteArray();
- string subject = string.Format("CN={0}", hostname);
- string issuer = subject;
- DateTime notBefore = DateTime.Now.AddDays(-2);
- DateTime notAfter = DateTime.Now.AddYears(10);
-
- RSA issuerKey = RSA.Create();
-#if NET46
- issuerKey.FromXmlString(MonoTestRootAgency);
-#else
- RSACryptoServiceProviderExtensions.FromXmlString(issuerKey, MonoTestRootAgency);
-#endif
- RSA subjectKey = RSA.Create();
-
- // serial number MUST be positive
- if ((sn[0] & 0x80) == 0x80)
- sn[0] -= 0x80;
-
- issuer = subject;
- issuerKey = subjectKey;
-
- X509CertificateBuilder cb = new X509CertificateBuilder(3);
- cb.SerialNumber = sn;
- cb.IssuerName = issuer;
- cb.NotBefore = notBefore;
- cb.NotAfter = notAfter;
- cb.SubjectName = subject;
- cb.SubjectPublicKey = subjectKey;
-
- // signature
- cb.Hash = "SHA256";
- byte[] rawcert = cb.Sign(issuerKey);
-
- PKCS12 p12 = new PKCS12();
-
-
- 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);
-
- p12.AddCertificate(new X509Certificate(rawcert), attributes);
- p12.Password = password;
-
- p12.AddPkcs8ShroudedKeyBag(subjectKey, attributes);
- p12.SaveToFile(fileName);
- }
- }
-
- public static class RSACryptoServiceProviderExtensions
- {
- public static void FromXmlString(RSA rsa, string xmlString)
- {
- RSAParameters parameters = new RSAParameters();
-
- XmlDocument xmlDoc = new XmlDocument();
- xmlDoc.LoadXml(xmlString);
-
- if (xmlDoc.DocumentElement.Name.Equals("RSAKeyValue"))
- {
- foreach (XmlNode node in xmlDoc.DocumentElement.ChildNodes)
- {
- switch (node.Name)
- {
- case "Modulus": parameters.Modulus = Convert.FromBase64String(node.InnerText); break;
- case "Exponent": parameters.Exponent = Convert.FromBase64String(node.InnerText); break;
- case "P": parameters.P = Convert.FromBase64String(node.InnerText); break;
- case "Q": parameters.Q = Convert.FromBase64String(node.InnerText); break;
- case "DP": parameters.DP = Convert.FromBase64String(node.InnerText); break;
- case "DQ": parameters.DQ = Convert.FromBase64String(node.InnerText); break;
- case "InverseQ": parameters.InverseQ = Convert.FromBase64String(node.InnerText); break;
- case "D": parameters.D = Convert.FromBase64String(node.InnerText); break;
- }
- }
- }
- else
- {
- throw new Exception("Invalid XML RSA key.");
- }
-
- rsa.ImportParameters(parameters);
- }
- }
-}
diff --git a/Emby.Server.Implementations/Cryptography/CryptoConvert.cs b/Emby.Server.Implementations/Cryptography/CryptoConvert.cs
deleted file mode 100644
index 70a91bfff1..0000000000
--- a/Emby.Server.Implementations/Cryptography/CryptoConvert.cs
+++ /dev/null
@@ -1,745 +0,0 @@
-//
-// CryptoConvert.cs - Crypto Convertion Routines
-//
-// Author:
-// Sebastien Pouliot