Esempio n. 1
0
func (_entity *Entity) Hash(_hasher hasher.Hasher) (_data []byte, _error os.Error) {
	_data, _error = _entity.JsonBytes()
	if _error != nil {
		return nil, _error
	}
	_data, _error = hasher.HashBytes(_data, _hasher)
	if _error != nil {
		return nil, _error
	}
	return _data, nil
}
Esempio n. 2
0
func (_node *Node) Hash(_hasher hasher.Hasher) (_hash []byte, _error os.Error) {
	if _hasher == nil {
		_hasher = _node.tree.hasher
	}
	if (_node.fingerprint != nil) && (_hasher == _node.tree.hasher) {
		return _node.fingerprint, nil
	}
	var _data []byte
	_data, _error = _node.GobBytes()
	if _error != nil {
		return nil, _error
	}
	_hash, _error = hasher.HashBytes(_data, _hasher)
	if _error != nil {
		return nil, _error
	}
	if _hasher == _node.tree.hasher {
		_node.fingerprint = _hash
	}
	return _hash, nil
}