コード例 #1
0
ファイル: Encryptor.cs プロジェクト: modo123/Encryptor
        public void CreateXMLFile(byte[] key)  //key - klucz sesyjny
        {
            File.Delete(MainWindow.OutputFile);
            XDocument xml = new XDocument(
                new XElement("EncryptedFileHeader",
                             new XElement("Algorithm", "AES"),
                             new XElement("KeySize", KeySize.ToString()),
                             new XElement("BlockSize", "128"),
                             new XElement("CipherMode", Mode)));

            if (Mode == "OFB" || Mode == "CFB")
            {
                xml.Root.Add(new XElement("SubblockSize", SubblockSize.ToString()));
            }

            if (Mode != "ECB")
            {
                CreateInitialVector();
                xml.Root.Add(new XElement("IV", Convert.ToBase64String(InitialVector)));
            }

            xml.Root.Add(new XElement("ApprovedUsers"));

            var usr = xml.Root.Element("ApprovedUsers");

            foreach (var u in Users)
            {
                var encodedKey = EncryptSessionKey(key, u); //zaszyfrowany klucz sesyjny kluczem publicznym odbiorcy
                usr.Add(new XElement("User",
                                     new XElement("Name", u),
                                     new XElement("SessionKey", Convert.ToBase64String(encodedKey))));
            }

            xml.Save(MainWindow.OutputFile);
        }
コード例 #2
0
        /// <include file='doc\HttpClientCertificate.uex' path='docs/doc[@for="HttpClientCertificate.Get"]/*' />
        /// <devdoc>
        ///    <para>Allows access to individual items in the collection by name.</para>
        /// </devdoc>
        public override String Get(String field)
        {
            if (field == null)
            {
                return(String.Empty);
            }

            field = field.ToLower(CultureInfo.InvariantCulture);

            switch (field)
            {
            case "cookie":
                return(Cookie);

            case "flags":
                return(Flags.ToString("G"));

            case "keysize":
                return(KeySize.ToString("G"));

            case "secretkeysize":
                return(SecretKeySize.ToString());

            case "issuer":
                return(Issuer);

            case "serverissuer":
                return(ServerIssuer);

            case "subject":
                return(Subject);

            case "serversubject":
                return(ServerSubject);

            case "serialnumber":
                return(SerialNumber);

            case "certificate":
                return(System.Text.Encoding.Default.GetString(Certificate));

            case "binaryissuer":
                return(System.Text.Encoding.Default.GetString(BinaryIssuer));

            case "publickey":
                return(System.Text.Encoding.Default.GetString(PublicKey));

            case "encoding":
                return(CertEncoding.ToString("G"));

            case "validfrom":
                return(HttpUtility.FormatHttpDateTime(ValidFrom));

            case "validuntil":
                return(HttpUtility.FormatHttpDateTime(ValidUntil));
            }

            if (field.StartsWith("issuer"))
            {
                return(ExtractString(Issuer, field.Substring(6)));
            }

            if (field.StartsWith("subject"))
            {
                if (field.Equals("subjectemail"))
                {
                    return(ExtractString(Subject, "e"));
                }
                else
                {
                    return(ExtractString(Subject, field.Substring(7)));
                }
            }

            if (field.StartsWith("serversubject"))
            {
                return(ExtractString(ServerSubject, field.Substring(13)));
            }

            if (field.StartsWith("serverissuer"))
            {
                return(ExtractString(ServerIssuer, field.Substring(12)));
            }

            return(String.Empty);
        }