code: func (csp *CSP) Hash(msg []byte, opts bccsp.HashOpts) (digest []byte, err error) {
  	// Validate arguments
  	if opts == nil {
  		return nil, errors.New("Invalid opts. It must not be nil.")
  	}
  
  	hasher, found := csp.Hashers[reflect.TypeOf(opts)]
  	if !found {
  		return nil, errors.Errorf("Unsupported 'HashOpt' provided [%v]", opts)
  	}
  
  	digest, err = hasher.Hash(msg, opts)
  	if err != nil {
  		return nil, errors.Wrapf(err, "Failed hashing with opts [%v]", opts)
  	}
  
  	return
  }
docs: // Hash hashes messages msg using options opts.