Пример #1
0
 public sbyte[] getEncoding(Asn1Encoder enc)
 {
     System.IO.MemoryStream out_Renamed = new System.IO.MemoryStream();
     try
     {
         encode(enc, out_Renamed);
     }
     catch (System.IO.IOException e)
     {
         // Should never happen - the current Asn1Object does not have
         // a encode method.
         throw new System.SystemException("IOException while encoding to byte array: " + e.ToString());
     }
     return SupportClass.ToSByteArray(out_Renamed.ToArray());
 }
Пример #2
0
		/* Asn1Object implementation
		*/
		
		/// <summary> Call this method to encode the current instance into the 
		/// specified output stream using the specified encoder object.
		/// 
		/// </summary>
		/// <param name="enc">Encoder object to use when encoding self.
		/// 
		/// </param>
		/// <param name="out">The output stream onto which the encoded byte 
		/// stream is written.
		/// </param>
		public override void  encode(Asn1Encoder enc, System.IO.Stream out_Renamed)
		{
			enc.encode(this, out_Renamed);
			return ;
		}
Пример #3
0
		/* Asn1Object implementation
		*/
		
		
		/// <summary> Call this method to encode the contents of this Asn1Choice
		/// instance into the specified output stream using the 
		/// specified encoder object.
		/// 
		/// </summary>
		/// <param name="enc">Encoder object to use when encoding self.
		/// 
		/// </param>
		/// <param name="out">The output stream onto which the encoded byte 
		/// stream is written.
		/// </param>
		public override void  encode(Asn1Encoder enc, System.IO.Stream out_Renamed)
		{
			content.encode(enc, out_Renamed);
			return ;
		}
Пример #4
0
		/// <summary> Abstract method that must be implemented by each child
		/// class to encode itself ( an Asn1Object) directly intto 
		/// a output stream.
		/// 
		/// </summary>
		/// <param name="out">The output stream onto which the encoded 
		/// Asn1Object will be placed.
		/// </param>
		abstract public void  encode(Asn1Encoder enc, System.IO.Stream out_Renamed);
Пример #5
0
        /* Asn1Object implementation
         */


        /// <summary> Call this method to encode the contents of this Asn1Choice
        /// instance into the specified output stream using the
        /// specified encoder object.
        ///
        /// </summary>
        /// <param name="enc">Encoder object to use when encoding self.
        ///
        /// </param>
        /// <param name="out">The output stream onto which the encoded byte
        /// stream is written.
        /// </param>
        public override void  encode(Asn1Encoder enc, System.IO.Stream out_Renamed)
        {
            content.encode(enc, out_Renamed);
            return;
        }
Пример #6
0
        /* Asn1Object implementation
         */

        /// <summary> Call this method to encode the current instance into the
        /// specified output stream using the specified encoder object.
        ///
        /// </summary>
        /// <param name="enc">Encoder object to use when encoding self.
        ///
        /// </param>
        /// <param name="out">The output stream onto which the encoded byte
        /// stream is written.
        /// </param>
        public override void  encode(Asn1Encoder enc, System.IO.Stream out_Renamed)
        {
            enc.encode(this, out_Renamed);
            return;
        }
Пример #7
0
        /* Asn1Object implementation
         */

        /// <summary>
        ///     Encode the current instance into the
        ///     specified output stream using the specified encoder object.
        /// </summary>
        /// <param name="enc">
        ///     Encoder object to use when encoding self.
        /// </param>
        /// <param name="out">
        ///     The output stream onto which the encoded byte
        ///     stream is written.
        /// </param>
        public override void encode(Asn1Encoder enc, Stream out_Renamed)
        {
            enc.encode(this, out_Renamed);
        }
Пример #8
0
 /// <summary> Abstract method that must be implemented by each child
 /// class to encode itself ( an Asn1Object) directly intto
 /// a output stream.
 ///
 /// </summary>
 /// <param name="out">The output stream onto which the encoded
 /// Asn1Object will be placed.
 /// </param>
 abstract public void  encode(Asn1Encoder enc, System.IO.Stream out_Renamed);
Пример #9
0
        /* Asn1Object implementation
         */


        /// <summary>
        ///     Call this method to encode the contents of this Asn1Choice
        ///     instance into the specified output stream using the
        ///     specified encoder object.
        /// </summary>
        /// <param name="enc">
        ///     Encoder object to use when encoding self.
        /// </param>
        /// <param name="out">
        ///     The output stream onto which the encoded byte
        ///     stream is written.
        /// </param>
        public override void encode(Asn1Encoder enc, Stream out_Renamed)
        {
            content.encode(enc, out_Renamed);
        }
        private static byte[] EncodePSD2QcStatmentExtension(PSD2Roles roles, PSD2CertificateType certType, byte retentionPeriod, string ncaName, string ncaId)
        {
            var rolesSeq = new List <byte[]>();

            if (roles.HasFlag(PSD2Roles.PSP_AS))
            {
                rolesSeq.Add(Asn1Encoder.Sequence(Asn1Encoder.ObjectIdentifier(OID_PSP_AS), Asn1Encoder.Utf8String(PSD2Roles.PSP_AS.ToString())));
            }
            if (roles.HasFlag(PSD2Roles.PSP_PI))
            {
                rolesSeq.Add(Asn1Encoder.Sequence(Asn1Encoder.ObjectIdentifier(OID_PSP_PI), Asn1Encoder.Utf8String(PSD2Roles.PSP_PI.ToString())));
            }
            if (roles.HasFlag(PSD2Roles.PSP_AI))
            {
                rolesSeq.Add(Asn1Encoder.Sequence(Asn1Encoder.ObjectIdentifier(OID_PSP_AI), Asn1Encoder.Utf8String(PSD2Roles.PSP_AI.ToString())));
            }
            if (roles.HasFlag(PSD2Roles.PSP_IC))
            {
                rolesSeq.Add(Asn1Encoder.Sequence(Asn1Encoder.ObjectIdentifier(OID_PSP_IC), Asn1Encoder.Utf8String(PSD2Roles.PSP_IC.ToString())));
            }

            return(Asn1Encoder.Sequence(
                       Asn1Encoder.Sequence(
                           Asn1Encoder.ObjectIdentifier(OID_QcsCompliance) //  this certificate is issued as a Qualified Certificate
                           ),
                       Asn1Encoder.Sequence(
                           Asn1Encoder.ObjectIdentifier(OID_QcRetentionPeriod), // number of years after the validity period the certificate will be stored in the issuer's archive
                           Asn1Encoder.IntegerBigEndian(new[] { retentionPeriod })
                           ),
                       Asn1Encoder.Sequence(
                           Asn1Encoder.ObjectIdentifier(OID_QcsQcSSCD) // CAs claiming to issue certificates where the private key related to the certified public key resides in a Secure Signature Creation Device(SSCD)
                           ),
                       Asn1Encoder.Sequence(
                           Asn1Encoder.ObjectIdentifier(OID_QcType),
                           Asn1Encoder.Sequence(
                               Asn1Encoder.ObjectIdentifier(certType == PSD2CertificateType.QWAC ? OID_QWAC_web : OID_QSealC_eseal)
                               )
                           ),
                       Asn1Encoder.Sequence(
                           Asn1Encoder.ObjectIdentifier(OID_PSD2qcStatement),
                           Asn1Encoder.Sequence(
                               Asn1Encoder.Sequence(rolesSeq.ToArray()),
                               Asn1Encoder.Utf8String(ncaName),
                               Asn1Encoder.Utf8String(ncaId)
                               )
                           )
                       ));
        }
Пример #11
0
 /// <summary>
 ///     Abstract method that must be implemented by each child
 ///     class to encode itself ( an Asn1Object) directly intto
 ///     a output stream.
 /// </summary>
 /// <param name="out">
 ///     The output stream onto which the encoded
 ///     Asn1Object will be placed.
 /// </param>
 public abstract void encode(Asn1Encoder enc, Stream out_Renamed);