Package codec.asn1

Examples of codec.asn1.ASN1Type


    public void decode(Decoder dec) throws ASN1Exception, IOException {

  super.decode(dec);

  ASN1Type inner = (ASN1Type) super.getValue();

  if (!(inner instanceof ASN1SequenceOf)) {
      throw new ASN1Exception("unexpected type of inner value "
        + inner.getClass().getName());
  }

  if (!(((ASN1SequenceOf) inner).getElementType()
    .equals(ASN1Sequence.class))) {
      throw new ASN1Exception("unexpected content of inner type "
View Full Code Here


     *
     * @return The raw key decoded according to DER.
     */
    public ASN1Type getDecodedRawKey() throws CorruptedCodeException {
  DERDecoder dec;
  ASN1Type raw;

  try {
      dec = new DERDecoder(new ByteArrayInputStream(encodedKey_
        .getBytes()));

View Full Code Here

        StringBuffer buf;
        String octet;
        ASN1IA5String newAsn1Object;
        ByteArrayInputStream in;
        DERDecoder decoder;
        ASN1Type asn1Type;


        /* Create ASN.1 object.
         */
        asn1Object = new ASN1IA5String("Hello World !");

        /* Print the ASN.1 object to the standard output.
         */
        System.out.println("ASN.1 object: ");
        System.out.println(asn1Object.toString());
        System.out.println();

        /* Encoding process.
         */
        /* Initialize an output stream to which the encoded data will be
         * written.
         */
        out     = new ByteArrayOutputStream();

        /* Initialize encoder instance with this output stream.
         */
        encoder     = new DEREncoder(out);

        /* Byte array to store the encoded data.
         */
        encodedAsn1Object = null;

        try
        {
            /* Encoder reads the data stored in the variable asn1Object and
             * encodes it writing the output to the output stream.
             */
            asn1Object.encode(encoder);

            /* Store the data in the output stream in a byte array. This array
             * will be decoded later.
             */
            encodedAsn1Object = out.toByteArray();

            /* Close the stream.
             */
            encoder.close();
        }
        catch (ASN1Exception e)
        {
            System.out.println("Error during encoding.");
            e.printStackTrace();
        }
        catch (IOException e)
        {
            System.out.println("Error during encoding.");
            e.printStackTrace();
        }


        /* Print the encoded data to the standard output in hexadecimal
         * representation.
         */
        buf = new StringBuffer();

        for (int i = 0; i < encodedAsn1Object.length; i++)
        {
            octet = Integer.toHexString(encodedAsn1Object[i] & 0xff);
            buf.append(" 0x");
            if (octet.length() == 1)
            {
                buf.append('0');
            }
            buf.append(octet);
        }

        System.out.println("Encoded ASN.1 object:");
        System.out.println(buf.toString());
        System.out.println();


        /* Decoding process.
         */
        /* Create new empty object of the expected class. This object will
         * store the decoded values.
         */
        newAsn1Object     = new ASN1IA5String();

        /* Initialize input stream containing the encoded data.
         */
        in     = new ByteArrayInputStream(encodedAsn1Object);

        /* Initialize decoder instance with this input stream.
         */
        decoder = new DERDecoder(in);

        try
        {
            /* Decode the data in the input stream and stored it in
             * newAsn1Object.
             */
            newAsn1Object.decode(decoder);

            /* Close the stream.
             */
            decoder.close();
        }
        catch (ASN1Exception e)
        {
            System.out.println("Error during decoding.");
            e.printStackTrace();
        }
        catch (IOException e)
        {
            System.out.println("Error during decoding.");
            e.printStackTrace();
        }

        /* Print the new ASN.1 object to the standard output.
         */
        System.out.println(
            "New ASN.1 object got by decoding the previous bytes:");
        System.out.println(newAsn1Object.toString());
        System.out.println();


        /* Alternative decoding procedure without assuming to know the ASN.1
         * type to be decoded.
         */
        System.out.println("Alternative decoding procedure:");

        /* Variable to store the data that will be decoded. Its type is not
         * determined.
         */
        asn1Type     = null;

        /* Input stream containing the encoded data.
         */
        in     = new ByteArrayInputStream(encodedAsn1Object);

        /* Initialize decoder instance with this input stream.
         */
        decoder = new DERDecoder(in);

        try
        {
            /* Decoder returns a Java object of the corresponding CODEC class
             * and already containing the decoded data.
             */
            asn1Type = decoder.readType();
            decoder.close();
        }
        catch (ASN1Exception e)
        {
            System.out.println("Error during decoding.");
            e.printStackTrace();
        }
        catch (IOException e)
        {
            System.out.println("Error during decoding.");
            e.printStackTrace();
        }

        /* Print the new ASN.1 object to the standard output.
         */
        System.out.println(
            "New ASN.1 object got by decoding the previous bytes:");
        System.out.println(asn1Type.toString());
        System.out.println();
    }
View Full Code Here

        .println("This bag is either password or public-key protected.");
      return null;
  }
  bais = new ByteArrayInputStream(encodedData);
  SafeContents safe = new SafeContents();
  BERDecoder decoder = new BERDecoder(bais);
  safe.decode(decoder);
  bais.close();
  return safe;
    }
View Full Code Here

  SecretKey pbeKey = skf.generateSecret(pbeSpec);
  encData.init(pbeKey);
  data = encData.getData();
  bais = new ByteArrayInputStream(data);
  SafeContents safe = new SafeContents();
  BERDecoder decoder = new BERDecoder(bais);
  safe.decode(decoder);
  bais.close();
  return safe;
    }
View Full Code Here

  envData.init(cert, key);
  byte[] data = envData.getData();

  bais = new ByteArrayInputStream(data);
  SafeContents safe = new SafeContents();
  BERDecoder decoder = new BERDecoder(bais);
  safe.decode(decoder);
  bais.close();
  return safe;
    }
View Full Code Here

  AlgorithmIdentifier aid;
  PBEParameterSpec pspec;
  SecretKeyFactory skf;
  PrivateKeyInfo pki;
  KeyFactory kf;
  DERDecoder dec;
  SecretKey secret;
  KeySpec kspec;
  Cipher cipher;
  String name;
  byte[] buf;

  try {
      name = algorithm_.getAlgorithmOID().toString();
      params = algorithm_.getParameters();
      pspec = (PBEParameterSpec) params
        .getParameterSpec(PBEParameterSpec.class);

      skf = SecretKeyFactory.getInstance(name);
      kspec = new PBEKeySpec(password);
      secret = skf.generateSecret(kspec);

      cipher = Cipher.getInstance(name);
      cipher.init(Cipher.DECRYPT_MODE, secret, pspec);

      buf = cipher.doFinal(encryptedData_.getByteArray());
      kspec = new PKCS8EncodedKeySpec(buf);

      pki = new PrivateKeyInfo();
      dec = new DERDecoder(new ByteArrayInputStream(buf));
      pki.decode(dec);
      dec.close();

      aid = pki.getAlgorithmIdentifier();
      name = aid.getAlgorithmOID().toString();
      kf = KeyFactory.getInstance(name);
View Full Code Here

     */
    public void setPrivateKey(PrivateKey key) throws InvalidKeyException {
  if (key == null)
      throw new NullPointerException("Key is null!");

  DERDecoder dec;

  clear();

  version_ = new ASN1Integer(VERSION);
  add(version_);

  algorithm_ = new AlgorithmIdentifier();
  add(algorithm_);

  encodedKey_ = new ASN1OctetString();
  add(encodedKey_);

  attributes_ = new ASN1SetOf(Attribute.class);
  add(new ASN1TaggedType(0, attributes_, false, true));

  try {
      dec = new DERDecoder(new ByteArrayInputStream(key.getEncoded()));

      decode(dec);
      dec.close();
  } catch (IOException e) {
      throw new InvalidKeyException("Caught IOException!");
  } catch (ASN1Exception e) {
      throw new InvalidKeyException("Bad encoding!");
  }
View Full Code Here

     * encodings.
     *
     * @return The raw key decoded according to DER.
     */
    public ASN1Type getDecodedRawKey() throws CorruptedCodeException {
  DERDecoder dec;
  ASN1Type raw;

  try {
      dec = new DERDecoder(new ByteArrayInputStream(encodedKey_
        .getByteArray()));

      raw = dec.readType();
      dec.close();

      return raw;
  } catch (ASN1Exception e) {
      throw new CorruptedCodeException("Cannot decode raw key!");
  } catch (IOException e) {
View Full Code Here

  this();

  try {
      ByteArrayInputStream bais = new ByteArrayInputStream(enc);

      decode(new DERDecoder(bais));
      bais.close();
  } catch (IOException e) {
      throw new ASN1Exception(e.getMessage());
  }
    }
View Full Code Here

TOP

Related Classes of codec.asn1.ASN1Type

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.