private byte[] getKey(final ByteArrayReader reader) { if (reader.read() != 0) { throw new BadKeySerializationException("Expected 0 padding at position 45"); } return reader.readRange(32); } }
@Override public ExtendedPublicKey deserialize(final byte[] extendedKeyData) { confirmExtendedKeyChecksum(extendedKeyData); final ByteArrayReader reader = new ByteArrayReader(extendedKeyData); return new ExtendedPublicKey(new HdKey .Builder() .network(networks.findByPublicVersion(reader.readSer32())) .depth(reader.read()) .parentFingerprint(reader.readSer32()) .childNumber(reader.readSer32()) .chainCode(reader.readRange(32)) .key(reader.readRange(33)) .neutered(true) .build() ); } }
@Override public ExtendedPrivateKey deserialize(final byte[] extendedKeyData) { confirmExtendedKeyChecksum(extendedKeyData); final ByteArrayReader reader = new ByteArrayReader(extendedKeyData); return new ExtendedPrivateKey(new HdKey .Builder() .network(networks.findByPrivateVersion(reader.readSer32())) .depth(reader.read()) .parentFingerprint(reader.readSer32()) .childNumber(reader.readSer32()) .chainCode(reader.readRange(32)) .key(getKey(reader)) .neutered(false) .build() ); }