code: func NewEncrypterEntity(ID string, bccsp bccsp.BCCSP, eKey bccsp.Key, eOpts bccsp.EncrypterOpts, dOpts bccsp.DecrypterOpts) (*BCCSPEncrypterEntity, error) {
  	if ID == "" {
  		return nil, errors.New("NewEntity error: empty ID")
  	}
  
  	if bccsp == nil {
  		return nil, errors.New("NewEntity error: nil bccsp")
  	}
  
  	if eKey == nil {
  		return nil, errors.New("NewEntity error: nil keys")
  	}
  
  	return &BCCSPEncrypterEntity{
  		BCCSPEntity: BCCSPEntity{
  			IDstr: ID,
  			BCCSP: bccsp,
  		},
  		EKey:  eKey,
  		EOpts: eOpts,
  		DOpts: dOpts,
  	}, nil
  }
docs: // NewEncrypterEntity returns an EncrypterEntity that is capable
  // of performing encryption using i) the supplied BCCSP instance;
  // ii) the supplied encryption key and iii) the supplied encryption
  // and decryption options. The identifier of the entity is supplied
  // as an argument as well - it's the caller's responsibility to
  // choose it in a way that it is meaningful