public Value mhash(Env env, int hash, StringValue data, @Optional string key) { if (key != null) { throw new UnsupportedOperationException("key"); } MhashAlgorithm algorithm = _algorithmMap.get(hash); if (algorithm == null) { return(BooleanValue.FALSE); } MessageDigest messageDigest = algorithm.createMessageDigest(); if (messageDigest == null) { log.warning(L.l("no MessageDigest for {0}", algorithm)); return(BooleanValue.FALSE); } byte[] result = messageDigest.digest(data.toBytes()); return(env.createBinaryBuilder(result)); }
public Value mhash_get_block_size(int hash) { MhashAlgorithm algorithm = _algorithmMap.get(hash); if (algorithm == null || algorithm.createMessageDigest() == null) { return(BooleanValue.FALSE); } return(LongValue.create(512)); // XXX: stubbed }
private void addAlgorithm(int ordinal, string name, string javaName) { MhashAlgorithm algorithm = new MhashAlgorithm(name, javaName, null); _algorithmMap.put(ordinal, algorithm); if (_highestOrdinal < ordinal) { _highestOrdinal = ordinal; } }
public Value mhash_get_hash_name(Env env, int hash) { MhashAlgorithm algorithm = _algorithmMap.get(hash); if (algorithm == null) { return(BooleanValue.FALSE); } else { return(env.createString(algorithm.getName())); } }