toCompactSerialization method

  1. @override
String toCompactSerialization()
override

Serializes the JsonWebSignature or JsonWebEncryption to a string.

Throws an exception when object cannot be serialized to its compact form, i.e. when the JsonWebSignature has multiple signatures or the JsonWebEncryption has multiple recipients.

Implementation

@override
String toCompactSerialization() {
  if (recipients.length != 1) {
    throw StateError(
        'Compact serialization does not support multiple recipients');
  }
  if (sharedUnprotectedHeader != null) {
    throw StateError(
        'Compact serialization does not support shared unprotected header');
  }
  var recipient = recipients.first;
  if (recipient.unprotectedHeader != null) {
    throw StateError(
        'Compact serialization does not support unprotected header parameters');
  }
  return '${sharedProtectedHeader!.toBase64EncodedString()}.'
      '${encodeBase64EncodedBytes(recipient.data)}.'
      '${encodeBase64EncodedBytes(initializationVector)}.'
      '${encodeBase64EncodedBytes(data)}.'
      '${encodeBase64EncodedBytes(authenticationTag)}';
}