Package com.trilead.ssh2.crypto.cipher

Examples of com.trilead.ssh2.crypto.cipher.BlockCipher


    /* Tell the other side that we start using the new material */

    PacketNewKeys ign = new PacketNewKeys();
    tm.sendKexMessage(ign.getPayload());

    BlockCipher cbc;
    MAC mac;

    try
    {
      cbc = BlockCipherFactory.createCipher(kxs.np.enc_algo_client_to_server, true, km.enc_key_client_to_server,
View Full Code Here


    if (msg[0] == Packets.SSH_MSG_NEWKEYS)
    {
      if (km == null)
        throw new IOException("Peer sent SSH_MSG_NEWKEYS, but I have no key material ready!");

      BlockCipher cbc;
      MAC mac;

      try
      {
        cbc = BlockCipherFactory.createCipher(kxs.np.enc_algo_server_to_client, false,
View Full Code Here

      throw new IOException("Broken PEM, DEK-Info is incomplete!");

    String algo = ps.dekInfo[0];
    byte[] salt = hexToByteArray(ps.dekInfo[1]);

    BlockCipher bc = null;

    if (algo.equals("DES-EDE3-CBC"))
    {
      DESede des3 = new DESede();
      des3.init(false, generateKeyFromPasswordSaltWithMD5(pw, salt, 24));
      bc = new CBCMode(des3, salt, false);
    }
    else if (algo.equals("DES-CBC"))
    {
      DES des = new DES();
      des.init(false, generateKeyFromPasswordSaltWithMD5(pw, salt, 8));
      bc = new CBCMode(des, salt, false);
    }
    else if (algo.equals("AES-128-CBC"))
    {
      AES aes = new AES();
      aes.init(false, generateKeyFromPasswordSaltWithMD5(pw, salt, 16));
      bc = new CBCMode(aes, salt, false);
    }
    else if (algo.equals("AES-192-CBC"))
    {
      AES aes = new AES();
      aes.init(false, generateKeyFromPasswordSaltWithMD5(pw, salt, 24));
      bc = new CBCMode(aes, salt, false);
    }
    else if (algo.equals("AES-256-CBC"))
    {
      AES aes = new AES();
      aes.init(false, generateKeyFromPasswordSaltWithMD5(pw, salt, 32));
      bc = new CBCMode(aes, salt, false);
    }
    else
    {
      throw new IOException("Cannot decrypt PEM structure, unknown cipher " + algo);
    }

    if ((ps.data.length % bc.getBlockSize()) != 0)
      throw new IOException("Invalid PEM structure, size of encrypted block is not a multiple of "
          + bc.getBlockSize());

    /* Now decrypt the content */

    byte[] dz = new byte[ps.data.length];

    for (int i = 0; i < ps.data.length / bc.getBlockSize(); i++)
    {
      bc.transformBlock(ps.data, i * bc.getBlockSize(), dz, i * bc.getBlockSize());
    }

    /* Now check and remove RFC 1423/PKCS #7 padding */

    dz = removePadding(dz, bc.getBlockSize());

    ps.data = dz;
    ps.dekInfo = null;
    ps.procType = null;
  }
View Full Code Here

    /* Tell the other side that we start using the new material */

    PacketNewKeys ign = new PacketNewKeys();
    tm.sendKexMessage(ign.getPayload());

    BlockCipher cbc;
    MAC mac;

    try
    {
      cbc = BlockCipherFactory.createCipher(kxs.np.enc_algo_client_to_server, true, km.enc_key_client_to_server,
View Full Code Here

    if (msg[0] == Packets.SSH_MSG_NEWKEYS)
    {
      if (km == null)
        throw new IOException("Peer sent SSH_MSG_NEWKEYS, but I have no key material ready!");

      BlockCipher cbc;
      MAC mac;

      try
      {
        cbc = BlockCipherFactory.createCipher(kxs.np.enc_algo_server_to_client, false,
View Full Code Here

      throw new IOException("Broken PEM, DEK-Info is incomplete!");

    String algo = ps.dekInfo[0];
    byte[] salt = hexToByteArray(ps.dekInfo[1]);

    BlockCipher bc = null;

    if (algo.equals("DES-EDE3-CBC"))
    {
      DESede des3 = new DESede();
      des3.init(false, generateKeyFromPasswordSaltWithMD5(pw, salt, 24));
      bc = new CBCMode(des3, salt, false);
    }
    else if (algo.equals("DES-CBC"))
    {
      DES des = new DES();
      des.init(false, generateKeyFromPasswordSaltWithMD5(pw, salt, 8));
      bc = new CBCMode(des, salt, false);
    }
    else if (algo.equals("AES-128-CBC"))
    {
      AES aes = new AES();
      aes.init(false, generateKeyFromPasswordSaltWithMD5(pw, salt, 16));
      bc = new CBCMode(aes, salt, false);
    }
    else if (algo.equals("AES-192-CBC"))
    {
      AES aes = new AES();
      aes.init(false, generateKeyFromPasswordSaltWithMD5(pw, salt, 24));
      bc = new CBCMode(aes, salt, false);
    }
    else if (algo.equals("AES-256-CBC"))
    {
      AES aes = new AES();
      aes.init(false, generateKeyFromPasswordSaltWithMD5(pw, salt, 32));
      bc = new CBCMode(aes, salt, false);
    }
    else
    {
      throw new IOException("Cannot decrypt PEM structure, unknown cipher " + algo);
    }

    if ((ps.data.length % bc.getBlockSize()) != 0)
      throw new IOException("Invalid PEM structure, size of encrypted block is not a multiple of "
          + bc.getBlockSize());

    /* Now decrypt the content */

    byte[] dz = new byte[ps.data.length];

    for (int i = 0; i < ps.data.length / bc.getBlockSize(); i++)
    {
      bc.transformBlock(ps.data, i * bc.getBlockSize(), dz, i * bc.getBlockSize());
    }

    /* Now check and remove RFC 1423/PKCS #7 padding */

    dz = removePadding(dz, bc.getBlockSize());

    ps.data = dz;
    ps.dekInfo = null;
    ps.procType = null;
  }
View Full Code Here

    /* Tell the other side that we start using the new material */

    PacketNewKeys ign = new PacketNewKeys();
    tm.sendKexMessage(ign.getPayload());

    BlockCipher cbc;
    MAC mac;

    try
    {
      cbc = BlockCipherFactory.createCipher(kxs.np.enc_algo_client_to_server, true, km.enc_key_client_to_server,
View Full Code Here

    if (msg[0] == Packets.SSH_MSG_NEWKEYS)
    {
      if (km == null)
        throw new IOException("Peer sent SSH_MSG_NEWKEYS, but I have no key material ready!");

      BlockCipher cbc;
      MAC mac;

      try
      {
        cbc = BlockCipherFactory.createCipher(kxs.np.enc_algo_server_to_client, false,
View Full Code Here

      throw new IOException("Broken PEM, DEK-Info is incomplete!");

    String algo = ps.dekInfo[0];
    byte[] salt = hexToByteArray(ps.dekInfo[1]);

    BlockCipher bc = null;

    if (algo.equals("DES-EDE3-CBC"))
    {
      DESede des3 = new DESede();
      des3.init(false, generateKeyFromPasswordSaltWithMD5(pw, salt, 24));
      bc = new CBCMode(des3, salt, false);
    }
    else if (algo.equals("DES-CBC"))
    {
      DES des = new DES();
      des.init(false, generateKeyFromPasswordSaltWithMD5(pw, salt, 8));
      bc = new CBCMode(des, salt, false);
    }
    else if (algo.equals("AES-128-CBC"))
    {
      AES aes = new AES();
      aes.init(false, generateKeyFromPasswordSaltWithMD5(pw, salt, 16));
      bc = new CBCMode(aes, salt, false);
    }
    else if (algo.equals("AES-192-CBC"))
    {
      AES aes = new AES();
      aes.init(false, generateKeyFromPasswordSaltWithMD5(pw, salt, 24));
      bc = new CBCMode(aes, salt, false);
    }
    else if (algo.equals("AES-256-CBC"))
    {
      AES aes = new AES();
      aes.init(false, generateKeyFromPasswordSaltWithMD5(pw, salt, 32));
      bc = new CBCMode(aes, salt, false);
    }
    else
    {
      throw new IOException("Cannot decrypt PEM structure, unknown cipher " + algo);
    }

    if ((ps.data.length % bc.getBlockSize()) != 0)
      throw new IOException("Invalid PEM structure, size of encrypted block is not a multiple of "
          + bc.getBlockSize());

    /* Now decrypt the content */

    byte[] dz = new byte[ps.data.length];

    for (int i = 0; i < ps.data.length / bc.getBlockSize(); i++)
    {
      bc.transformBlock(ps.data, i * bc.getBlockSize(), dz, i * bc.getBlockSize());
    }

    /* Now check and remove RFC 1423/PKCS #7 padding */

    dz = removePadding(dz, bc.getBlockSize());

    ps.data = dz;
    ps.dekInfo = null;
    ps.procType = null;
  }
View Full Code Here

    if (msg[0] == Packets.SSH_MSG_NEWKEYS)
    {
      if (km == null)
        throw new IOException("Peer sent SSH_MSG_NEWKEYS, but I have no key material ready!");

      BlockCipher cbc;
      MAC mac;

      try
      {
        cbc = BlockCipherFactory.createCipher(kxs.np.enc_algo_server_to_client, false,
View Full Code Here

TOP

Related Classes of com.trilead.ssh2.crypto.cipher.BlockCipher

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.