summaryrefslogtreecommitdiffstats
path: root/pki/base/util/src/netscape/security/x509/IPAddressName.java
diff options
context:
space:
mode:
authorcfu <cfu@c9f7a03b-bd48-0410-a16d-cbbf54688b0b>2008-09-16 19:53:28 +0000
committercfu <cfu@c9f7a03b-bd48-0410-a16d-cbbf54688b0b>2008-09-16 19:53:28 +0000
commit2c6a3daedb8cbe4cdcbb98418cd068562ec45e00 (patch)
tree5cc949ab78b9db6d9fb8667d67a47cb9fc0702e9 /pki/base/util/src/netscape/security/x509/IPAddressName.java
parent78bdeb25861c9fd66457b73eecf7274913f271cb (diff)
downloadpki-2c6a3daedb8cbe4cdcbb98418cd068562ec45e00.tar.gz
pki-2c6a3daedb8cbe4cdcbb98418cd068562ec45e00.tar.xz
pki-2c6a3daedb8cbe4cdcbb98418cd068562ec45e00.zip
462488 - IPAddress in SubjAltNameExt incorrectly padded with extra bytes in cert
git-svn-id: svn+ssh://svn.fedorahosted.org/svn/pki/trunk@111 c9f7a03b-bd48-0410-a16d-cbbf54688b0b
Diffstat (limited to 'pki/base/util/src/netscape/security/x509/IPAddressName.java')
-rw-r--r--pki/base/util/src/netscape/security/x509/IPAddressName.java27
1 files changed, 24 insertions, 3 deletions
diff --git a/pki/base/util/src/netscape/security/x509/IPAddressName.java b/pki/base/util/src/netscape/security/x509/IPAddressName.java
index caa5bcaf..4fe58145 100644
--- a/pki/base/util/src/netscape/security/x509/IPAddressName.java
+++ b/pki/base/util/src/netscape/security/x509/IPAddressName.java
@@ -107,10 +107,10 @@ public class IPAddressName implements GeneralNameInterface {
IPAddr ipAddr = null;
if (s.indexOf(':') != -1) {
ipAddr = IPv6;
- address = new byte[IPv6_LEN*2];
+ address = new byte[IPv6_LEN];
} else {
ipAddr = IPv4;
- address = new byte[IPv4_LEN*2];
+ address = new byte[IPv4_LEN];
}
ipAddr.getIPAddr(s, address, 0);
}
@@ -136,10 +136,31 @@ public class IPAddressName implements GeneralNameInterface {
* Return a printable string of IPaddress
*/
public String toString() {
- return ("IPAddress: " + (address[0] & 0xff) + "."
+ if (address.length == 4) {
+ return ("IPAddress: " + (address[0] & 0xff) + "."
+ (address[1] & 0xff) + "."
+ (address[2] & 0xff) + "."
+ (address[3] & 0xff));
+ } else {
+ String r= "IPAddress: " + Integer.toHexString(address[0] & 0xff);
+ String hexString = Integer.toHexString(address[1] & 0xff);
+ if (hexString.length() ==1) {
+ r = r+ "0" + hexString;
+ } else {
+ r += hexString;
+ }
+ for (int i=2; i < address.length; ) {
+ r+= ":" + Integer.toHexString(address[i] & 0xff);
+ hexString = Integer.toHexString(address[i+1] & 0xff);
+ if (hexString.length() ==1) {
+ r = r +"0" + hexString;
+ } else {
+ r += hexString;
+ }
+ i+=2;
+ }
+ return r;
+ }
}
}