* additional-tickets[11] SEQUENCE OF Ticket OPTIONAL
* }
*/
private DERSequence encodeKdcRequestBody( RequestBody requestBody )
{
DERSequence sequence = new DERSequence();
sequence.add( new DERTaggedObject( 0, new DERBitString( requestBody.getKdcOptions().getBytes() ) ) );
// OPTIONAL
if ( requestBody.getClientPrincipal() != null )
{
sequence.add( new DERTaggedObject( 1, PrincipalNameEncoder.encode( requestBody.getClientPrincipal() ) ) );
}
sequence.add( new DERTaggedObject( 2, DERGeneralString.valueOf( requestBody.getServerPrincipal().getRealm()
.toString() ) ) );
// OPTIONAL
if ( requestBody.getServerPrincipal() != null )
{
sequence.add( new DERTaggedObject( 3, PrincipalNameEncoder.encode( requestBody.getServerPrincipal() ) ) );
}
// OPTIONAL
if ( requestBody.getFrom() != null )
{
sequence.add( new DERTaggedObject( 4, KerberosTimeEncoder.encode( requestBody.getFrom() ) ) );
}
sequence.add( new DERTaggedObject( 5, KerberosTimeEncoder.encode( requestBody.getTill() ) ) );
// OPTIONAL
if ( requestBody.getRtime() != null )
{
sequence.add( new DERTaggedObject( 6, KerberosTimeEncoder.encode( requestBody.getRtime() ) ) );
}
sequence.add( new DERTaggedObject( 7, DERInteger.valueOf( requestBody.getNonce() ) ) );
sequence.add( new DERTaggedObject( 8, EncryptionTypeEncoder.encode( requestBody.getEType() ) ) );
// OPTIONAL
if ( requestBody.getAddresses() != null )
{
sequence.add( new DERTaggedObject( 9, HostAddressesEncoder.encodeSequence( requestBody.getAddresses() ) ) );
}
// OPTIONAL
if ( requestBody.getEncAuthorizationData() != null )
{
sequence.add( new DERTaggedObject( 10, EncryptedDataEncoder.encodeSequence( requestBody
.getEncAuthorizationData() ) ) );
}
// OPTIONAL
if ( requestBody.getAdditionalTickets() != null )
{
sequence
.add( new DERTaggedObject( 11, TicketEncoder.encodeSequence( requestBody.getAdditionalTickets() ) ) );
}
return sequence;
}