Beispiel #1
0
        /**
         * Produce an object suitable for an Asn1OutputStream.
         * <pre>
         * TBSRequest      ::=     Sequence {
         *     version             [0]     EXPLICIT Version DEFAULT v1,
         *     requestorName       [1]     EXPLICIT GeneralName OPTIONAL,
         *     requestList                 Sequence OF Request,
         *     requestExtensions   [2]     EXPLICIT Extensions OPTIONAL }
         * </pre>
         */
        public override Asn1Object ToAsn1Object()
        {
            Asn1EncodableVector v = new Asn1EncodableVector();

            //
            // if default don't include - unless explicitly provided. Not strictly correct
            // but required for some requests
            //
            if (!version.Equals(V1) || versionSet)
            {
                v.Add(new DerTaggedObject(true, 0, version));
            }

            if (requestorName != null)
            {
                v.Add(new DerTaggedObject(true, 1, requestorName));
            }

            v.Add(requestList);

            if (requestExtensions != null)
            {
                v.Add(new DerTaggedObject(true, 2, requestExtensions));
            }

            return(new DerSequence(v));
        }
        /**
         * Produce an object suitable for an Asn1OutputStream.
         * <pre>
         * TBSRequest      ::=     Sequence {
         *     version             [0]     EXPLICIT Version DEFAULT v1,
         *     requestorName       [1]     EXPLICIT GeneralName OPTIONAL,
         *     requestList                 Sequence OF Request,
         *     requestExtensions   [2]     EXPLICIT Extensions OPTIONAL }
         * </pre>
         */
        public override Asn1Object ToAsn1Object()
        {
            Asn1EncodableVector v = new Asn1EncodableVector();

            //
            // if default don't include.
            //
            if (!version.Equals(V1))
            {
                v.Add(new DerTaggedObject(true, 0, version));
            }

            if (requestorName != null)
            {
                v.Add(new DerTaggedObject(true, 1, requestorName));
            }

            v.Add(requestList);

            if (requestExtensions != null)
            {
                v.Add(new DerTaggedObject(true, 2, requestExtensions));
            }

            return(new DerSequence(v));
        }
        /**
         * <pre>
         * RSASSA-PSS-params ::= SEQUENCE {
         *   hashAlgorithm      [0] OAEP-PSSDigestAlgorithms  DEFAULT sha1,
         *    maskGenAlgorithm   [1] PKCS1MGFAlgorithms  DEFAULT mgf1SHA1,
         *    saltLength         [2] INTEGER  DEFAULT 20,
         *    trailerField       [3] TrailerField  DEFAULT trailerFieldBC
         *  }
         *
         * OAEP-PSSDigestAlgorithms    ALGORITHM-IDENTIFIER ::= {
         *    { OID id-sha1 PARAMETERS NULL   }|
         *    { OID id-sha256 PARAMETERS NULL }|
         *    { OID id-sha384 PARAMETERS NULL }|
         *    { OID id-sha512 PARAMETERS NULL },
         *    ...  -- Allows for future expansion --
         * }
         *
         * PKCS1MGFAlgorithms    ALGORITHM-IDENTIFIER ::= {
         *   { OID id-mgf1 PARAMETERS OAEP-PSSDigestAlgorithms },
         *    ...  -- Allows for future expansion --
         * }
         *
         * TrailerField ::= INTEGER { trailerFieldBC(1) }
         * </pre>
         * @return the asn1 primitive representing the parameters.
         */
        public override Asn1Object ToAsn1Object()
        {
            Asn1EncodableVector v = new Asn1EncodableVector();

            if (!hashAlgorithm.Equals(DefaultHashAlgorithm))
            {
                v.Add(new DerTaggedObject(true, 0, hashAlgorithm));
            }

            if (!maskGenAlgorithm.Equals(DefaultMaskGenFunction))
            {
                v.Add(new DerTaggedObject(true, 1, maskGenAlgorithm));
            }

            if (!saltLength.Equals(DefaultSaltLength))
            {
                v.Add(new DerTaggedObject(true, 2, saltLength));
            }

            if (!trailerField.Equals(DefaultTrailerField))
            {
                v.Add(new DerTaggedObject(true, 3, trailerField));
            }

            return(new DerSequence(v));
        }
        public override void PerformTest()
        {
            DerInteger val = new DerInteger(9);

            DerApplicationSpecific tagged = new DerApplicationSpecific(false, 3, val);

            if (!AreEqual(impData, tagged.GetEncoded()))
            {
                Fail("implicit encoding failed");
            }

            DerInteger recVal = (DerInteger) tagged.GetObject(Asn1Tags.Integer);

            if (!val.Equals(recVal))
            {
                Fail("implicit read back failed");
            }

            DerApplicationSpecific certObj = (DerApplicationSpecific)
                Asn1Object.FromByteArray(certData);

            if (!certObj.IsConstructed() || certObj.ApplicationTag != 33)
            {
                Fail("parsing of certificate data failed");
            }

            byte[] encoded = certObj.GetDerEncoded();

            if (!Arrays.AreEqual(certData, encoded))
            {
                Console.WriteLine(Encoding.ASCII.GetString(certData, 0, certData.Length).Substring(0, 20));
                Console.WriteLine(Encoding.ASCII.GetString(encoded, 0, encoded.Length).Substring(0, 20));
                Fail("re-encoding of certificate data failed");
            }
        }
        public override void PerformTest()
        {
            DerInteger val = new DerInteger(9);

            DerApplicationSpecific tagged = new DerApplicationSpecific(false, 3, val);

            if (!AreEqual(impData, tagged.GetEncoded()))
            {
                Fail("implicit encoding failed");
            }

            DerInteger recVal = (DerInteger)tagged.GetObject(Asn1Tags.Integer);

            if (!val.Equals(recVal))
            {
                Fail("implicit read back failed");
            }

            DerApplicationSpecific certObj = (DerApplicationSpecific)
                                             Asn1Object.FromByteArray(certData);

            if (!certObj.IsConstructed() || certObj.ApplicationTag != 33)
            {
                Fail("parsing of certificate data failed");
            }

            byte[] encoded = certObj.GetDerEncoded();

            if (!Arrays.AreEqual(certData, encoded))
            {
                Console.WriteLine(Encoding.ASCII.GetString(certData, 0, certData.Length).Substring(0, 20));
                Console.WriteLine(Encoding.ASCII.GetString(encoded, 0, encoded.Length).Substring(0, 20));
                Fail("re-encoding of certificate data failed");
            }
        }
Beispiel #6
0
        /**
         * Produce an object suitable for an Asn1OutputStream.
         * <pre>
         * ResponseData ::= Sequence {
         *     version              [0] EXPLICIT Version DEFAULT v1,
         *     responderID              ResponderID,
         *     producedAt               GeneralizedTime,
         *     responses                Sequence OF SingleResponse,
         *     responseExtensions   [1] EXPLICIT Extensions OPTIONAL }
         * </pre>
         */
        public override Asn1Object ToAsn1Object()
        {
            Asn1EncodableVector v = new Asn1EncodableVector();

            if (versionPresent || !version.Equals(V1))
            {
                v.Add(new DerTaggedObject(true, 0, version));
            }

            v.Add(responderID, producedAt, responses);
            v.AddOptionalTagged(true, 1, responseExtensions);
            return(new DerSequence(v));
        }
Beispiel #7
0
        public override Asn1Object ToAsn1Object()
        {
            Asn1EncodableVector asn1EncodableVector = new Asn1EncodableVector();

            if (versionPresent || !version.Equals(V1))
            {
                asn1EncodableVector.Add(new DerTaggedObject(explicitly: true, 0, version));
            }
            asn1EncodableVector.Add(responderID, producedAt, responses);
            if (responseExtensions != null)
            {
                asn1EncodableVector.Add(new DerTaggedObject(explicitly: true, 1, responseExtensions));
            }
            return(new DerSequence(asn1EncodableVector));
        }
Beispiel #8
0
        public override Asn1Object ToAsn1Object()
        {
            Asn1EncodableVector asn1EncodableVector = new Asn1EncodableVector();

            if (!version.Equals(V1) || versionSet)
            {
                asn1EncodableVector.Add(new DerTaggedObject(explicitly: true, 0, version));
            }
            if (requestorName != null)
            {
                asn1EncodableVector.Add(new DerTaggedObject(explicitly: true, 1, requestorName));
            }
            asn1EncodableVector.Add(requestList);
            if (requestExtensions != null)
            {
                asn1EncodableVector.Add(new DerTaggedObject(explicitly: true, 2, requestExtensions));
            }
            return(new DerSequence(asn1EncodableVector));
        }
Beispiel #9
0
        public override void PerformTest()
        {
            TestTaggedObject();

            DerApplicationSpecific appSpec = (DerApplicationSpecific)Asn1Object.FromByteArray(sampleData);

            if (1 != appSpec.ApplicationTag)
            {
                Fail("wrong tag detected");
            }

            DerInteger val = new DerInteger(9);

            DerApplicationSpecific tagged = new DerApplicationSpecific(false, 3, val);

            if (!AreEqual(impData, tagged.GetEncoded()))
            {
                Fail("implicit encoding failed");
            }

            DerInteger recVal = (DerInteger)tagged.GetObject(Asn1Tags.Integer);

            if (!val.Equals(recVal))
            {
                Fail("implicit read back failed");
            }

            DerApplicationSpecific certObj = (DerApplicationSpecific)
                                             Asn1Object.FromByteArray(certData);

            if (!certObj.IsConstructed() || certObj.ApplicationTag != 33)
            {
                Fail("parsing of certificate data failed");
            }

            byte[] encoded = certObj.GetDerEncoded();

            if (!Arrays.AreEqual(certData, encoded))
            {
                Fail("re-encoding of certificate data failed");
            }
        }
        public override void PerformTest()
		{
            TestTaggedObject();

            DerApplicationSpecific appSpec = (DerApplicationSpecific)Asn1Object.FromByteArray(sampleData);

            if (1 != appSpec.ApplicationTag)
            {
                Fail("wrong tag detected");
            }

            DerInteger val = new DerInteger(9);

			DerApplicationSpecific tagged = new DerApplicationSpecific(false, 3, val);

			if (!AreEqual(impData, tagged.GetEncoded()))
			{
				Fail("implicit encoding failed");
			}

			DerInteger recVal = (DerInteger) tagged.GetObject(Asn1Tags.Integer);

			if (!val.Equals(recVal))
			{
				Fail("implicit read back failed");
			}

			DerApplicationSpecific certObj = (DerApplicationSpecific)
				Asn1Object.FromByteArray(certData);

			if (!certObj.IsConstructed() || certObj.ApplicationTag != 33)
			{
				Fail("parsing of certificate data failed");
			}

			byte[] encoded = certObj.GetDerEncoded();

			if (!Arrays.AreEqual(certData, encoded))
			{
				Fail("re-encoding of certificate data failed");
			}
		}