whole_func_string: function(recipientPrivate, senderPublic, _payload) {
      // Errorsp
      if(!recipientPrivate || !senderPublic || !_payload) throw new Error('Missing argument !');
      // Processing
      let binPayload = convert.hexToUint8(_payload);
      let salt = new Uint8Array(binPayload.buffer, 0, 32);
      let iv = new Uint8Array(binPayload.buffer, 32, 16);
      let payload = new Uint8Array(binPayload.buffer, 48);
  
      let keyPair = createKeyPairFromPrivateKeyString(recipientPrivate);
      let pk = convert.hexToUint8(senderPublic);
      let encKey = deriveSharedKey(keyPair, pk, salt);
      let encIv = {
          iv: ua2words(iv, 16)
      };
      let encrypted = {
          'ciphertext': ua2words(payload, payload.length)
      };
      let plain = CryptoJS.AES.decrypt(encrypted, encKey, encIv);
      // Result
      let hexplain = CryptoJS.enc.Hex.stringify(plain);
      return hexplain;
  }
func_code_string: function(recipientPrivate, senderPublic, _payload) {
      // Errorsp
      if(!recipientPrivate || !senderPublic || !_payload) throw new Error('Missing argument !');
      // Processing
      let binPayload = convert.hexToUint8(_payload);
      let salt = new Uint8Array(binPayload.buffer, 0, 32);
      let iv = new Uint8Array(binPayload.buffer, 32, 16);
      let payload = new Uint8Array(binPayload.buffer, 48);
  
      let keyPair = createKeyPairFromPrivateKeyString(recipientPrivate);
      let pk = convert.hexToUint8(senderPublic);
      let encKey = deriveSharedKey(keyPair, pk, salt);
      let encIv = {
          iv: ua2words(iv, 16)
      };
      let encrypted = {
          'ciphertext': ua2words(payload, payload.length)
      };
      let plain = CryptoJS.AES.decrypt(encrypted, encKey, encIv);
      // Result
      let hexplain = CryptoJS.enc.Hex.stringify(plain);
      return hexplain;
  }
func_documentation_string: Decode an encrypted message payload
  
  @param {string} recipientPrivate - A recipient private key
  @param {string} senderPublic - A sender public key
  @param {string} _payload - An encrypted message payload
  
  @return {string} - The decoded payload as hex