I have also posted this message to the JAVA 400-L mailing list.  I am
testing my Java code on the iSeries and continue to run in to a
persistent issue.  I have made a cryptographic provider for Java as a
project, and it works perfectly on Windows and z/OS.  However, I run
into an issue on the iSeries when I attempt to use the AES (Rijndael)
algorithm.  Here's the code I run:

SecretKeyFactory aesFactory = SecretKeyFactory.getInstance("AES");
SecretKeySpec x = new SecretKeySpec(aes256Key, 0, 32, "AES");
System.out.println("Pre  generateSecret() Size: " + x.getEncoded().length);
aesKey = aesFactory.generateSecret(x);
System.out.println("Post generateSecret() Size: " + aesKey.getEncoded().length);

The variable "aes256Key" is a filled byte array of length 32.  When I
run this code, I get an output like the following:

Pre  generateSecret() Size: 32
Post generateSecret() Size: 16

When I print the arrays, the Post-generateSecret() array is exactly
the first 16 bytes of the pre-genarateSecret() array.  (i.e., if the
"Pre" array is <0,1,2,3,…,31>, the "Post" array is <0,1,2,3…15>).
However, no error was thrown; the array was just truncated.

I thought this was an issue with the Unlimited Strength Jurisdiction
Policy Files, but the behavior remained the same when I updated them.
I also attempted to do this with TripleDES instead of AES, but the
code worked fine.

Does the IBM JCE limit AES to 128-bits without even throwing an error?
Any insight would be greatly appreciated.

Thank you very much,
-Matt Venables

As an Amazon Associate we earn from qualifying purchases.

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2021 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.