net.i2p.data.Hash.getData()方法的使用及代码示例

x33g5p2x  于2022-01-20 转载在 其他  
字(7.7k)|赞(0)|评价(0)|浏览(204)

本文整理了Java中net.i2p.data.Hash.getData()方法的一些代码示例,展示了Hash.getData()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Hash.getData()方法的具体详情如下:
包路径:net.i2p.data.Hash
类名称:Hash
方法名:getData

Hash.getData介绍

暂无

代码示例

代码示例来源:origin: i2p/i2p.i2p

/**
 * @param target key to compare distances with
 * @param avoidZeroHop if true, zero-hop tunnels will be put last
 */
public TunnelInfoComparator(Hash target, boolean avoidZeroHop) {
  _base = target.getData();
  _avoidZero = avoidZeroHop;
}

代码示例来源:origin: i2p/i2p.i2p

public LocalHash(Hash h) {
  super(h.getData());
}

代码示例来源:origin: i2p/i2p.i2p

public static BigInteger getDistance(Hash targetKey, Hash routerInQuestion) {
    // plain XOR of the key and router
    byte diff[] = DataHelper.xor(routerInQuestion.getData(), targetKey.getData());
    return new BigInteger(1, diff);
  }
}

代码示例来源:origin: i2p/i2p.i2p

/**
 *  @since 0.8.9
 */
private static Integer getReverseKey(Hash hash) {
  byte[] hashBytes = hash.getData();        
  int i = (int) DataHelper.fromLong(hashBytes, 0, 4);
  return Integer.valueOf(i);
}

代码示例来源:origin: i2p/i2p.i2p

/** not thread safe */
private HashComparator(Hash h) {
  _hash = h;
  tmp = new Hash(new byte[Hash.HASH_LENGTH]);
  data = new byte[2*Hash.HASH_LENGTH];
  System.arraycopy(_hash.getData(), 0, data, Hash.HASH_LENGTH, Hash.HASH_LENGTH);
}

代码示例来源:origin: i2p/i2p.i2p

/**
 *  Implement a random, deterministic split into 4 groups that cannot be predicted by
 *  others.
 *  @return 0-3
 */
private int getSubTier(Hash peer, Hash randomKey) {
  // input is first 64 bytes; output is last 32 bytes
  byte[] data = new byte[96];
  System.arraycopy(peer.getData(), 0, data, 0, 32);
  System.arraycopy(randomKey.getData(), 0, data, 32, 32);
  _context.sha().calculateHash(data, 0, 64, data, 64);
  return data[64] & 0x03;
}

代码示例来源:origin: i2p/i2p.i2p

/**
 * Generate a modified (yet consistent) hash from the origKey by generating the
 * SHA256 of the targetKey with the specified modData appended to it
 *
 * @throws IllegalArgumentException if origKey is null
 */
private static Hash getKey(Hash origKey, byte[] modData) {
  if (origKey == null) throw new IllegalArgumentException("Original key is null");
  byte modVal[] = new byte[Hash.HASH_LENGTH + LENGTH];
  System.arraycopy(origKey.getData(), 0, modVal, 0, Hash.HASH_LENGTH);
  System.arraycopy(modData, 0, modVal, Hash.HASH_LENGTH, LENGTH);
  return SHA256Generator.getInstance().calculateHash(modVal);
}

代码示例来源:origin: i2p/i2p.i2p

public int compare(Hash l, Hash r) {
    System.arraycopy(l.getData(), 0, data, 0, Hash.HASH_LENGTH);
    byte[] tb = tmp.getData();
    // don't use caching version of calculateHash()
    SHA256Generator.getInstance().calculateHash(data, 0, 2*Hash.HASH_LENGTH, tb, 0);
    BigInteger ll = HashDistance.getDistance(_hash, tmp);
    System.arraycopy(r.getData(), 0, data, 0, Hash.HASH_LENGTH);
    SHA256Generator.getInstance().calculateHash(data, 0, 2*Hash.HASH_LENGTH, tb, 0);
    BigInteger rr = HashDistance.getDistance(_hash, tmp);
    return ll.compareTo(rr);
  }
}

代码示例来源:origin: i2p/i2p.i2p

/**
 * Creates 54-byte compact info
 * @throws IllegalArgumentException
 */
private void initialize() {
  if (port <= 0 || port >= 65535)
    throw new IllegalArgumentException("Bad port");
  byte[] compactInfo = new byte[LENGTH];
  System.arraycopy(nID.getData(), 0, compactInfo, 0, NID.HASH_LENGTH);
  System.arraycopy(hash.getData(), 0, compactInfo, NID.HASH_LENGTH, Hash.HASH_LENGTH);
  DataHelper.toLong(compactInfo, NID.HASH_LENGTH + Hash.HASH_LENGTH, 2, port);
  setData(compactInfo);
}

代码示例来源:origin: i2p/i2p.i2p

/**
 * Verify the NID matches the Hash.
 * See generateNID() for requirements.
 * @throws IllegalArgumentException on mismatch
 */
private void verify() {
  if (!KRPC.SECURE_NID)
    return;
  byte[] nb = nID.getData();
  byte[] hb = hash.getData();
  if ((!DataHelper.eq(nb, 0, hb, 0, 4)) ||
    ((nb[4] ^ (port >> 8)) & 0xff) != (hb[4] & 0xff) ||
    ((nb[5] ^ port) & 0xff) != (hb[5] & 0xff))
    throw new IllegalArgumentException("NID/Hash mismatch");
}

代码示例来源:origin: i2p/i2p.i2p

/**
 *  For convenience.
 *  @return "{52 chars}.b32.i2p" or null if fields not set.
 *  @since 0.9.14
 */
public String toBase32() {
  try {
    return Base32.encode(getHash().getData()) + ".b32.i2p";
  } catch (IllegalStateException ise) {
    return null;
  }
}

代码示例来源:origin: i2p/i2p.i2p

public PeerID(byte[] id, Destination address)
{
 this.id = id;
 this.address = address;
 this.port = TrackerClient.PORT;
 this.destHash = address.calculateHash().getData();
 hash = calculateHash();
 util = null;
}

代码示例来源:origin: i2p/i2p.i2p

/**
 * Generate a secure NID that matches the Hash and port.
 * Rules: First 4 bytes must match Hash.
 * Next 2 bytes must match Hash ^ port.
 * Remaining bytes may be random.
 *
 * @throws IllegalArgumentException
 */
public static NID generateNID(Hash h, int p, RandomSource random) {
  byte[] n = new byte[NID.HASH_LENGTH];
  System.arraycopy(h.getData(), 0, n, 0, 6);
  n[4] ^= (byte) (p >> 8);
  n[5] ^= (byte) p;
  random.nextBytes(n, 6, NID.HASH_LENGTH - 6);
  return new NID(n);
}

代码示例来源:origin: i2p/i2p.i2p

protected byte[] doWriteMessage() throws I2CPMessageException, IOException {
  if (_dest == null) {
    if (_hash == null)
      return new byte[0];  // null response allowed
    return _hash.getData();
  }
  ByteArrayOutputStream os = new ByteArrayOutputStream(_dest.size());
  try {
    _dest.writeBytes(os);
  } catch (DataFormatException dfe) {
    throw new I2CPMessageException("Error writing out the dest", dfe);
  }
  return os.toByteArray();
}

代码示例来源:origin: i2p/i2p.i2p

/**
 *  PBE the passphrase with the salt.
 *  Warning - SLOW
 */
public SessionKey generateSessionKey(byte salt[], byte passphrase[]) {
  byte salted[] = new byte[16+passphrase.length];
  System.arraycopy(salt, 0, salted, 0, Math.min(salt.length, 16));
  System.arraycopy(passphrase, 0, salted, 16, passphrase.length);
  byte h[] = _context.sha().calculateHash(salted).getData();
  for (int i = 1; i < PBE_ROUNDS; i++)
    _context.sha().calculateHash(h, 0, Hash.HASH_LENGTH, h, 0);
  return new SessionKey(h);
}

代码示例来源:origin: i2p/i2p.i2p

public int compare(PeerProfile left, PeerProfile right) {

    double lval = left.getSpeedValue();
    double rval = right.getSpeedValue();
    int rv = Double.compare(lval, rval);
    if (rv != 0)
      return rv;

    // we don't wan't to return 0 so profiles don't vanish in the TreeSet
    lval = left.getCapacityValue();
    rval = right.getCapacityValue();
    rv = Double.compare(lval, rval);
    if (rv != 0)
      return rv;
    return DataHelper.compareTo(right.getPeer().getData(), left.getPeer().getData());
  }
}

代码示例来源:origin: i2p/i2p.i2p

public void feedEntropy(String source, byte[] data, int offset, int len) {
  if ( (offset == 0) && (len == data.length) ) {
    setSeed(data);
  } else {
    setSeed(_context.sha().calculateHash(data, offset, len).getData());
  }
}

代码示例来源:origin: i2p/i2p.i2p

public OutboundEstablishState(RouterContext ctx, NTCPTransport transport, NTCPConnection con) {
  super(ctx, transport, con);
  _state = State.OB_INIT;
  ctx.sha().calculateHash(_X, 0, XY_SIZE, _hX_xor_bobIdentHash, 0);
  xor32(con.getRemotePeer().calculateHash().getData(), _hX_xor_bobIdentHash);
  // _prevEncrypted will be created later
}

代码示例来源:origin: i2p/i2p.i2p

public void testBasicAES(){
  SessionKey sessionKey = KeyGenerator.getInstance().generateSessionKey();
  Hash h = SHA256Generator.getInstance().calculateHash(sessionKey.getData());
  byte iv[] = new byte[16];
  System.arraycopy(h.getData(), 0, iv, 0, 16);
  
  String msg = "Hello world01234012345678901234501234567890123450123456789012345";
  h = SHA256Generator.getInstance().calculateHash(DataHelper.getASCII(msg));
  
  byte aesEncr[] = new byte[DataHelper.getASCII(msg).length];
  byte aesDecr[] = new byte[aesEncr.length];
  _context.aes().encrypt(DataHelper.getASCII(msg), 0, aesEncr, 0, sessionKey, iv, aesEncr.length);
  _context.aes().decrypt(aesEncr, 0, aesDecr, 0, sessionKey, iv, aesEncr.length);
  h = SHA256Generator.getInstance().calculateHash(aesDecr);
  
  assertEquals(msg, new String(aesDecr));
}

代码示例来源:origin: i2p/i2p.i2p

protected PendingGatewayMessage createPending(int size, boolean includeRouter, boolean includeTunnel) {
  DataMessage m = new DataMessage(_context);
  byte data[] = new byte[size];
  _context.random().nextBytes(data);
  m.setData(data);
  m.setUniqueId(_context.random().nextLong(I2NPMessage.MAX_ID_VALUE));
  m.setMessageExpiration(_context.clock().now() + 60*1000);
  
  Hash toRouter = null;
  TunnelId toTunnel = null;
  if (includeRouter) {
    toRouter = new Hash(new byte[Hash.HASH_LENGTH]);
    _context.random().nextBytes(toRouter.getData());
  }
  if (includeTunnel)
    toTunnel = new TunnelId(1 + _context.random().nextLong(TunnelId.MAX_ID_VALUE));
  return new PendingGatewayMessage(m, toRouter, toTunnel);
}

相关文章