{
  "protocol": "saltpack",
  "imports": [
    {
      "path": "common.avdl",
      "type": "idl"
    },
    {
      "path": "identify_common.avdl",
      "type": "idl"
    }
  ],
  "types": [
    {
      "type": "record",
      "name": "SaltpackEncryptOptions",
      "fields": [
        {
          "type": {
            "type": "array",
            "items": "string"
          },
          "name": "recipients"
        },
        {
          "type": "boolean",
          "name": "hideSelf"
        },
        {
          "type": "boolean",
          "name": "noSelfEncrypt"
        },
        {
          "type": "boolean",
          "name": "binary"
        },
        {
          "type": "boolean",
          "name": "hideRecipients"
        }
      ]
    },
    {
      "type": "record",
      "name": "SaltpackDecryptOptions",
      "fields": [
        {
          "type": "boolean",
          "name": "interactive"
        },
        {
          "type": "boolean",
          "name": "forceRemoteCheck"
        },
        {
          "type": "boolean",
          "name": "usePaperKey"
        }
      ]
    },
    {
      "type": "record",
      "name": "SaltpackSignOptions",
      "fields": [
        {
          "type": "boolean",
          "name": "detached"
        },
        {
          "type": "boolean",
          "name": "binary"
        }
      ]
    },
    {
      "type": "record",
      "name": "SaltpackVerifyOptions",
      "fields": [
        {
          "type": "string",
          "name": "signedBy"
        },
        {
          "type": "bytes",
          "name": "signature"
        }
      ]
    },
    {
      "type": "record",
      "name": "SaltpackEncryptedMessageInfo",
      "fields": [
        {
          "type": {
            "type": "array",
            "items": "Device"
          },
          "name": "devices"
        },
        {
          "type": "int",
          "name": "numAnonReceivers"
        },
        {
          "type": "boolean",
          "name": "receiverIsAnon"
        },
        {
          "type": "SaltpackSender",
          "name": "sender"
        }
      ]
    }
  ],
  "messages": {
    "saltpackEncrypt": {
      "request": [
        {
          "name": "sessionID",
          "type": "int"
        },
        {
          "name": "source",
          "type": "Stream"
        },
        {
          "name": "sink",
          "type": "Stream"
        },
        {
          "name": "opts",
          "type": "SaltpackEncryptOptions"
        }
      ],
      "response": null
    },
    "saltpackDecrypt": {
      "request": [
        {
          "name": "sessionID",
          "type": "int"
        },
        {
          "name": "source",
          "type": "Stream"
        },
        {
          "name": "sink",
          "type": "Stream"
        },
        {
          "name": "opts",
          "type": "SaltpackDecryptOptions"
        }
      ],
      "response": "SaltpackEncryptedMessageInfo"
    },
    "saltpackSign": {
      "request": [
        {
          "name": "sessionID",
          "type": "int"
        },
        {
          "name": "source",
          "type": "Stream"
        },
        {
          "name": "sink",
          "type": "Stream"
        },
        {
          "name": "opts",
          "type": "SaltpackSignOptions"
        }
      ],
      "response": null
    },
    "saltpackVerify": {
      "request": [
        {
          "name": "sessionID",
          "type": "int"
        },
        {
          "name": "source",
          "type": "Stream"
        },
        {
          "name": "sink",
          "type": "Stream"
        },
        {
          "name": "opts",
          "type": "SaltpackVerifyOptions"
        }
      ],
      "response": null
    }
  },
  "namespace": "keybase.1"
}