Class MessageEncoder

java.lang.Object
org.symbol.sdk.symbol.MessageEncoder

public final class MessageEncoder extends Object
MessageEncoder

Encrypts and encodes messages between two Symbol parties. Wire format is [0x01 | tag(16) | iv(12) | cipherText]; persistent harvesting delegations use [FE2A8061577301E2 marker(8) | ephemeralPubKey(32) | tag(16) | iv(12) | cipherText].

  • Constructor Details

    • MessageEncoder

      public MessageEncoder(KeyPair keyPair)
      Creates a message encoder around a key pair.
      Parameters:

      keyPair - Key pair.

  • Method Details

    • getPublicKey

      public CryptoTypes.PublicKey getPublicKey()
      MessageEncoder.publicKey

      Returns the public key used for message encoding.

      Returns:

      Public key used for message encoding.

    • tryDecode

      public MessageEncoderResult tryDecode(CryptoTypes.PublicKey recipientPublicKey, byte[] encodedMessage)
      MessageEncoder.tryDecode

      Tries to decode an encoded message.

      Parameters:

      recipientPublicKey - Recipient's public key.

      encodedMessage - Encoded message bytes.

      Returns:

      Decoded result. isDecoded() is true on success.

    • encode

      public byte[] encode(CryptoTypes.PublicKey recipientPublicKey, byte[] message)
      MessageEncoder.encode

      Encodes a message to a recipient using the recommended format.

      Parameters:

      recipientPublicKey - Recipient public key.

      message - Message to encode.

      Returns:

      Encrypted and encoded message.

    • encodePersistentHarvestingDelegation

      public byte[] encodePersistentHarvestingDelegation(CryptoTypes.PublicKey nodePublicKey, KeyPair remoteKeyPair, KeyPair vrfKeyPair)
      MessageEncoder.encodePersistentHarvestingDelegation

      Encodes a persistent harvesting delegation to a node.

      Parameters:

      nodePublicKey - Node public key.

      remoteKeyPair - Remote key pair.

      vrfKeyPair - VRF key pair.

      Returns:

      Encrypted and encoded harvesting delegation request.

    • tryDecodeDeprecated

      public MessageEncoderResult tryDecodeDeprecated(CryptoTypes.PublicKey recipientPublicKey, byte[] encodedMessage)
      MessageEncoder.tryDecodeDeprecated

      Tries to decode an encoded message using the deprecated wallet format; provided only for compatibility with the original Symbol wallets — new code should use tryDecode(CryptoTypes.PublicKey, byte[]).

      Parameters:

      recipientPublicKey - Recipient's public key.

      encodedMessage - Encoded message bytes.

      Returns:

      Decoded result.

    • encodeDeprecated

      public byte[] encodeDeprecated(CryptoTypes.PublicKey recipientPublicKey, byte[] message)
      MessageEncoder.encodeDeprecated

      Encodes a message to a recipient using the deprecated wallet format; provided only for compatibility with the original Symbol wallets — new code should use encode(CryptoTypes.PublicKey, byte[]).

      Parameters:

      recipientPublicKey - Recipient public key.

      message - Message to encode.

      Returns:

      Encrypted and encoded message.