Java 1.5 ASN encoding error
Dangi, Salil
Salil.Dangi at unisys.com
Tue Jun 20 19:23:28 EDT 2006
Java 1.5 is not encoding integers properly.
I am using java 1.5 to generate a service ticket token (AP Request) for
a service running on Unisys machines.
This token can not be parsed properly due to ASN encoding errors.
There is an Authenticator in this AP request.
Within the authenticator, there is an optional field for seq-number of
type integer.
The seq-number is a unsigned integer that can go from 0 to 2**32 -1 with
a random initial value.
During my sample runs, I saw that Java 1.5 implementation is either
sending an integer encoded in 2 bytes or an integer encoded in 4 bytes.
When this is encoded in 2 bytes, there is no issue. When this is encoded
in 4 bytes, the encoding is not correct. The value looks something like
FFFFXXXX (A706 0204 FFFFXXXX).
As per ASN encoding, this should be encoded as 00FFFFXXXX (A707 0205
00FFFFXXXX) since ASN encoding does not allow top 9 bit to be either all
ones or all zeroes.
Has anyone seen this problem?
sample Hex dump of the seq-number field from the Authenticator
A70402020398 Works
A704020207CB Works
A7060204FFFFF77F Fails
A7060204FFFFFA59 Fails
A7060204FFFFF96D Fails
A7060204FFFFF3F8 Fails
More information about the krbdev
mailing list