*/
@Override
public void cacheKey(byte[] hash, DSAPublicKey key, boolean deep, boolean canWriteClientCache, boolean canWriteDatastore, boolean forULPR, boolean writeLocalToDatastore) {
if (logMINOR)
Logger.minor(this, "Cache key: " + HexUtil.bytesToHex(hash) + " : " + key);
ByteArrayWrapper w = new ByteArrayWrapper(hash);
synchronized (cachedPubKeys) {
DSAPublicKey key2 = cachedPubKeys.get(w);
if ((key2 != null) && !key2.equals(key))
throw new IllegalArgumentException("Wrong hash?? Already have different key with same hash!");
cachedPubKeys.push(w, key);