code: func (t *EncCC) Encrypter(stub shim.ChaincodeStubInterface, args []string, encKey, IV []byte) pb.Response {
  	// create the encrypter entity - we give it an ID, the bccsp instance, the key and (optionally) the IV
  	ent, err := entities.NewAES256EncrypterEntity("ID", t.bccspInst, encKey, IV)
  	if err != nil {
  		return shim.Error(fmt.Sprintf("entities.NewAES256EncrypterEntity failed, err %s", err))
  	}
  
  	if len(args) != 2 {
  		return shim.Error("Expected 2 parameters to function Encrypter")
  	}
  
  	key := args[0]
  	cleartextValue := []byte(args[1])
  
  	// here, we encrypt cleartextValue and assign it to key
  	err = encryptAndPutState(stub, ent, key, cleartextValue)
  	if err != nil {
  		return shim.Error(fmt.Sprintf("encryptAndPutState failed, err %+v", err))
  	}
  	return shim.Success(nil)
  }
docs: // Encrypter exposes how to write state to the ledger after having
  // encrypted it with an AES 256 bit key that has been provided to the chaincode through the
  // transient field