Example #1
0
  public String getSecurityProviders() {
    StringBuilder sb = new StringBuilder();
    Provider[] p = Security.getProviders();

    for (Provider provider : p) {
      sb.append(provider.getName())
          .append("   ")
          .append(provider.getVersion())
          .append("   ")
          .append(provider.getInfo())
          .append("<br>");
    }

    Set<String> s = Security.getAlgorithms("MessageDigest");
    for (String string : s) {
      sb.append(string).append("   ");
    }

    sb.append(Integer.toBinaryString(7))
        .append("   ")
        .append(Integer.toOctalString(15))
        .append("   ")
        .append(Integer.toHexString(17));

    return sb.toString();
  }
  @DataPoints
  public static MessageDigest[] getMessageDigests() throws Exception {
    List<MessageDigest> digests = new ArrayList<MessageDigest>();

    Set<String> algorithms = Security.getAlgorithms("MessageDigest");
    for (String algorithm : algorithms) {
      digests.add(MessageDigest.getInstance(algorithm));
    }

    return digests.toArray(new MessageDigest[0]);
  }
  public static void main(String[] args) throws Exception {
    try {
      Set<String> algorithms = Security.getAlgorithms("Cipher");
      for (String algorithm : algorithms) {
        int max;
        max = Cipher.getMaxAllowedKeyLength(algorithm);
        System.out.printf("%-22s: %dbit%n", algorithm, max);
      }
    } catch (NoSuchAlgorithmException e) {
      e.printStackTrace();
    }

    String originalPassword = "******";
    System.out.println("Original password: "******"Encrypted password: "******"Decrypted password: " + decryptedPassword);
  }
public class KeyRepTest extends TestCase {

  private static final Set<String> keyFactoryAlgorithms = Security.getAlgorithms("KeyFactory");

  static {
    assertFalse(keyFactoryAlgorithms.isEmpty());
  }

  public final void testKeyRep01() {
    assertNotNull(new KeyRep(KeyRep.Type.SECRET, "", "", new byte[] {}));
    assertNotNull(new KeyRep(KeyRep.Type.PUBLIC, "", "", new byte[] {}));
    assertNotNull(new KeyRep(KeyRep.Type.PRIVATE, "", "", new byte[] {}));
  }

  public final void testKeyRep02() {
    try {
      new KeyRep(null, "", "", new byte[] {});
      fail("NullPointerException has not been thrown (type)");
    } catch (NullPointerException expected) {
    }
    try {
      new KeyRep(KeyRep.Type.SECRET, null, "", new byte[] {});
      fail("NullPointerException has not been thrown (alg)");
    } catch (NullPointerException expected) {
    }
    try {
      new KeyRep(KeyRep.Type.PRIVATE, "", null, new byte[] {});
      fail("NullPointerException has not been thrown (format)");
    } catch (NullPointerException expected) {
    }
    try {
      new KeyRep(KeyRep.Type.PUBLIC, "", "", null);
      fail("NullPointerException has not been thrown (encoding)");
    } catch (NullPointerException expected) {
    }
  }

  public final void testReadResolve01() throws Exception {
    KeyRepChild kr = new KeyRepChild(KeyRep.Type.SECRET, "", "", new byte[] {});
    try {
      kr.readResolve();
      fail("NotSerializableException has not been thrown (no format)");
    } catch (NotSerializableException expected) {
    }

    kr = new KeyRepChild(KeyRep.Type.SECRET, "", "X.509", new byte[] {});
    try {
      kr.readResolve();
      fail("NotSerializableException has not been thrown (unacceptable format)");
    } catch (NotSerializableException expected) {
    }

    kr = new KeyRepChild(KeyRep.Type.SECRET, "", "RAW", new byte[] {});
    try {
      kr.readResolve();
      fail("NotSerializableException has not been thrown (empty key)");
    } catch (NotSerializableException expected) {
    }
  }

  public final void testReadResolve02() throws Exception {
    KeyRepChild kr = new KeyRepChild(KeyRep.Type.PUBLIC, "", "", new byte[] {});
    try {
      kr.readResolve();
      fail("NotSerializableException has not been thrown (no format)");
    } catch (NotSerializableException expected) {
    }

    kr = new KeyRepChild(KeyRep.Type.PUBLIC, "", "RAW", new byte[] {});
    try {
      kr.readResolve();
      fail("NotSerializableException has not been thrown (unacceptable format)");
    } catch (NotSerializableException expected) {
    }

    kr = new KeyRepChild(KeyRep.Type.PUBLIC, "bla-bla", "X.509", new byte[] {});
    try {
      kr.readResolve();
      fail("NotSerializableException has not been thrown (unknown KeyFactory algorithm)");
    } catch (NotSerializableException expected) {
    }
  }

  public final void testReadResolve03() throws Exception {
    KeyRepChild kr = new KeyRepChild(KeyRep.Type.PRIVATE, "", "", new byte[] {});
    try {
      kr.readResolve();
      fail("NotSerializableException has not been thrown (no format)");
    } catch (NotSerializableException expected) {
    }

    kr = new KeyRepChild(KeyRep.Type.PRIVATE, "", "RAW", new byte[] {});
    try {
      kr.readResolve();
      fail("NotSerializableException has not been thrown (unacceptable format)");
    } catch (NotSerializableException expected) {
    }

    kr = new KeyRepChild(KeyRep.Type.PRIVATE, "bla-bla", "PKCS#8", new byte[] {});
    try {
      kr.readResolve();
      fail("NotSerializableException has not been thrown (unknown KeyFactory algorithm)");
    } catch (NotSerializableException expected) {
    }
  }

  public final void testReadResolve04() throws Exception {
    for (String algorithm : keyFactoryAlgorithms) {
      KeyRepChild kr =
          new KeyRepChild(KeyRep.Type.PUBLIC, algorithm, "X.509", new byte[] {1, 2, 3});
      try {
        kr.readResolve();
        fail("NotSerializableException has not been thrown (no format) " + algorithm);
      } catch (NotSerializableException expected) {
      }
    }
  }

  public final void testReadResolve05() throws Exception {
    for (String algorithm : keyFactoryAlgorithms) {
      KeyRepChild kr =
          new KeyRepChild(KeyRep.Type.PRIVATE, algorithm, "PKCS#8", new byte[] {1, 2, 3});
      try {
        kr.readResolve();
        fail("NotSerializableException has not been thrown (no format) " + algorithm);
      } catch (NotSerializableException expected) {
      }
    }
  }

  class KeyRepChild extends KeyRep {
    public KeyRepChild(KeyRep.Type type, String algorithm, String format, byte[] encoded) {
      super(type, algorithm, format, encoded);
    }

    // Overriden to make public for testing
    @Override
    public Object readResolve() throws ObjectStreamException {
      return super.readResolve();
    }
  }
}