{
encPrivPart = cipherTextHandler.seal( subSessionKey, privPart, KeyUsage.NUMBER13 );
}
catch ( KerberosException ke )
{
throw new ChangePasswordException( ErrorType.KRB5_KPASSWD_SOFTERROR, ke );
}
PrivateMessage privateMessage = new PrivateMessage( encPrivPart );
// Begin AP_REP generation
EncApRepPartModifier encApModifier = new EncApRepPartModifier();
encApModifier.setClientTime( authenticator.getClientTime() );
encApModifier.setClientMicroSecond( authenticator.getClientMicroSecond() );
encApModifier.setSequenceNumber( new Integer( authenticator.getSequenceNumber() ) );
encApModifier.setSubSessionKey( authenticator.getSubSessionKey() );
EncApRepPart repPart = encApModifier.getEncApRepPart();
EncryptedData encRepPart;
try
{
encRepPart = cipherTextHandler.seal( ticket.getEncTicketPart().getSessionKey(), repPart, KeyUsage.NUMBER12 );
}
catch ( KerberosException ke )
{
throw new ChangePasswordException( ErrorType.KRB5_KPASSWD_SOFTERROR, ke );
}
ApplicationReply appReply = new ApplicationReply( encRepPart );
// return status message value object