package freenet.store;
import java.io.IOException;
import freenet.crypt.DSAPublicKey;
import freenet.support.HexUtil;
import freenet.support.Logger;
public class SimpleGetPubkey implements GetPubkey {
final PubkeyStore store;
public SimpleGetPubkey(PubkeyStore store) {
this.store = store;
}
@Override
public DSAPublicKey getKey(byte[] hash, boolean canReadClientCache,
boolean forULPR, BlockMetadata meta) {
try {
return store.fetch(hash, false, false, meta);
} catch (IOException e) {
Logger.error(this, "Caught "+e+" fetching pubkey for "+HexUtil.bytesToHex(hash));
return null;
}
}
@Override
public void cacheKey(byte[] hash, DSAPublicKey key, boolean deep,
boolean canWriteClientCache, boolean canWriteDatastore,
boolean forULPR, boolean writeLocalToDatastore) {
try {
store.put(hash, key, false);
} catch (IOException e) {
Logger.error(this, "Caught "+e+" storing pubkey for "+HexUtil.bytesToHex(hash));
}
}
}