code: def serialize_wrapped_key(key_provider, wrapping_algorithm, wrapping_key_id, encrypted_wrapped_key):
      
      if encrypted_wrapped_key.iv is None:
          key_info = wrapping_key_id
          key_ciphertext = encrypted_wrapped_key.ciphertext
      else:
          key_info = struct.pack(
              ">{key_id_len}sII{iv_len}s".format(
                  key_id_len=len(wrapping_key_id), iv_len=wrapping_algorithm.algorithm.iv_len
              ),
              to_bytes(wrapping_key_id),
              len(encrypted_wrapped_key.tag) * 8,  # Tag Length is stored in bits, not bytes
              wrapping_algorithm.algorithm.iv_len,
              encrypted_wrapped_key.iv,
          )
          key_ciphertext = encrypted_wrapped_key.ciphertext + encrypted_wrapped_key.tag
      return EncryptedDataKey(
          key_provider=MasterKeyInfo(provider_id=key_provider.provider_id, key_info=key_info),
          encrypted_data_key=key_ciphertext,
      )
docs: Serializes EncryptedData into a Wrapped EncryptedDataKey.
  
      :param key_provider: Info for Wrapping MasterKey
      :type key_provider: aws_encryption_sdk.structures.MasterKeyInfo
      :param wrapping_algorithm: Wrapping Algorithm with which to wrap plaintext_data_key
      :type wrapping_algorithm: aws_encryption_sdk.identifiers.WrappingAlgorithm
      :param bytes wrapping_key_id: Key ID of wrapping MasterKey
      :param encrypted_wrapped_key: Encrypted data key
      :type encrypted_wrapped_key: aws_encryption_sdk.internal.structures.EncryptedData
      :returns: Wrapped EncryptedDataKey
      :rtype: aws_encryption_sdk.structures.EncryptedDataKey