/**
             * Read a Key Pair
             */
            public object ParseObject(
                PemObject obj)
            {
                bool   isEncrypted = false;
                String dekInfo     = null;
                IList  headers     = obj.Headers;

                for (IEnumerator it = headers.GetEnumerator(); it.MoveNext();)
                {
                    PemHeader hdr = (PemHeader)it.Current;

                    if (hdr.Name.Equals("Proc-Type") && hdr.Value.Equals("4,ENCRYPTED"))
                    {
                        isEncrypted = true;
                    }
                    else if (hdr.Name.Equals("DEK-Info"))
                    {
                        dekInfo = hdr.Value;
                    }
                }

                //
                // extract the key
                //
                byte[] keyBytes = obj.GetContent();

                try
                {
                    if (isEncrypted)
                    {
                        return(new OpenSslEncryptedObject(obj.Type, dekInfo, keyBytes, pemKeyPairParser));
                    }

                    return(pemKeyPairParser.Parse(keyBytes));
                }
                catch (IOException e)
                {
                    if (isEncrypted)
                    {
                        throw new OpenSslPemParsingException("exception decoding - please check password and data.", e);
                    }
                    else
                    {
                        throw new OpenSslPemParsingException(e.Message, e);
                    }
                }
                catch (ArgumentException e)
                {
                    if (isEncrypted)
                    {
                        throw new OpenSslPemParsingException("exception decoding - please check password and data.", e);
                    }
                    else
                    {
                        throw new OpenSslPemParsingException(e.Message, e);
                    }
                }
            }
Exemple #2
0
        public override bool Equals(object obj)
        {
            if (obj == this)
            {
                return(true);
            }
            if (!(obj is PemHeader))
            {
                return(false);
            }
            PemHeader pemHeader = (PemHeader)obj;

            return(object.Equals(name, pemHeader.name) && object.Equals(val, pemHeader.val));
        }
Exemple #3
0
        public override bool Equals(object obj)
        {
            if (obj == this)
            {
                return(true);
            }

            if (!(obj is PemHeader))
            {
                return(false);
            }

            PemHeader other = (PemHeader)obj;

            return(object.Equals(this.Name, other.Name) &&
                   object.Equals(this.Value, other.Value));
        }
Exemple #4
0
        public override bool Equals(object obj)
        {
            if (obj == this)
            {
                return(true);
            }

            if (!(obj is PemHeader))
            {
                return(false);
            }

            PemHeader other = (PemHeader)obj;

            return(Platform.Equals(this.name, other.name) &&
                   Platform.Equals(this.val, other.val));
        }
Exemple #5
0
        public override bool Equals(object obj)
        {
            if (obj == this)
            {
                return(true);
            }
            if (!(obj is PemHeader))
            {
                return(false);
            }
            PemHeader pemHeader = (PemHeader)obj;

            if (object.Equals((object)name, (object)pemHeader.name))
            {
                return(object.Equals((object)val, (object)pemHeader.val));
            }
            return(false);
        }