[Impressum]
[E-Mail]
package generated.javacard.copycardMoneySecure.copycard;
import javacard.framework.*;
import javacard.security.MessageDigest;
public class HashedData implements Codeable, HashData {
public final static short HASHLENGTH = 20;
private static MessageDigest md = MessageDigest.getInstance(
MessageDigest.ALG_SHA, false);
private static byte[] tohash = new byte[Store.COMPUTEDHASHDATALENGTH];
public byte[] hashed;
public HashedData() {
hashed = new byte[HASHLENGTH];
}
public void copy(HashedData from) {
//Der Typ von hashed ist ein Array aus primitiven Typen.
Arrays.copy(from.hashed, this.hashed);
}
public byte getCode() {
return Code.HASHEDDATA;
}
public boolean equals(Codeable other) {
//Wenn der Typ der Objekte nicht ?bereinstimmt, k?nnen sie nicht gleich sein
if (getCode() != other.getCode())
return false;
if (!Arrays.equals(hashed, ((HashedData) other).hashed))
return false;
return true;
}
public static HashedData hash(HashData h) {
return Store.newHashedData().insthash(h);
}
private HashedData insthash(HashData h) {
Coding c = Coding.getInstance();
c.encode(h, tohash);
md.doFinal(tohash, (short) 0, c.getEncodingLength(), hashed, (short) 0);
return this;
}
}