public void setPrivateKey(Key key)
{
if (key instanceof RSAPrivateCrtKey2) {
// gesetzter key wurde urspr�nglich auch aus einem SIZ-file gelesen
RSAPrivateCrtKey2 privkey=(RSAPrivateCrtKey2)key;
this.p=trimba(privkey.getP().toByteArray());
this.q=trimba(privkey.getQ().toByteArray());
this.dP=trimba(privkey.getdP().toByteArray());
this.dQ=trimba(privkey.getdQ().toByteArray());
this.Ap=trimba(privkey.getAp().toByteArray());
this.Aq=trimba(privkey.getAq().toByteArray());
} else {
// key wurde mit Java erzeugt, es m�ssen noch ein paar Parameter,
// die f�rs SIZ-file ben�tigt werden, errechnet werden
RSAPrivateCrtKey privkey=(RSAPrivateCrtKey)key;
this.p=trimba(privkey.getPrimeP().toByteArray());
this.q=trimba(privkey.getPrimeQ().toByteArray());
this.dP=trimba(privkey.getPrimeExponentP().toByteArray());
this.dQ=trimba(privkey.getPrimeExponentQ().toByteArray());
BigInteger one=new BigInteger("1");
BigInteger modulus=new BigInteger(+1,this.p).multiply(new BigInteger(+1,this.q));
this.Ap=trimba(new BigInteger(+1,this.q).modPow(new BigInteger(+1,this.p).subtract(one),modulus).toByteArray());