Skip to content

Instantly share code, notes, and snippets.

@beer-psi
Last active April 2, 2022 23:40
Show Gist options
  • Save beer-psi/9d74e1a3f9fd26c97b6d1b64ab7fe175 to your computer and use it in GitHub Desktop.
Save beer-psi/9d74e1a3f9fd26c97b6d1b64ab7fe175 to your computer and use it in GitHub Desktop.
OpenAPI 3 definitions for TSS Saver API and shsh.host
openapi: 3.0.1
info:
title: shsh.host API
version: "1"
servers:
- url: https://api.arx8x.net
tags:
- name: shsh
- name: apnonce
- name: apticket
- name: misc
paths:
/get_ip/:
get:
tags:
- misc
summary: Returns the IP address which made the request
responses:
200:
description: The IP address
content:
text/html:
schema:
type: string
example: "127.0.0.1"
/apnonce_pair/:
post:
tags:
- apnonce
summary: Retrieves currently saved APNonce pair from the server
requestBody:
description: ECID of the device to retrieve pair
content:
multipart/form-data:
schema:
$ref: '#/components/schemas/ApNonceRequest'
required: true
responses:
200:
description: Could be a success, could have failed, who knows
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/ApiResponseApNonceSuccess'
- $ref: '#/components/schemas/ApiResponseGeneralFailure'
/listmynonce/:
post:
tags:
- apnonce
summary: List generators from saved blobs on shsh.host
requestBody:
description: Information of device to find generators for
content:
multipart/form-data:
schema:
$ref: '#/components/schemas/SHSH3ListMyNonceRequest'
responses:
200:
description: ARX8x should really start setting HTTP response codes
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/ApiResponseListMyNonceSuccess'
- $ref: '#/components/schemas/ApiResponseGeneralFailure'
/shsh3/:
post:
tags:
- shsh
summary: Saves SHSH blobs for a device
parameters:
- in: header
name: X-CPU-STATE
schema:
type: string
example: "0000000000000000000000000000000000000000"
required: true
- in: header
name: User-Agent
schema:
type: string
example: BackgroundShortcutRunner/1145.7.3 CFNetwork/1327.0.4 Darwin/21.2.0
required: true
requestBody:
description: Information of device to save SHSH blobs for
content:
multipart/form-data:
schema:
oneOf:
- $ref: '#/components/schemas/SHSH3SaveRequest'
- $ref: '#/components/schemas/SHSH3FirmwareRequest'
responses:
200:
description: ARX8x should really start setting HTTP response codes
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/ApiResponseSHSH3SaveSuccess'
- $ref: '#/components/schemas/ApiResponseSHSH3FirmwareSuccess'
- $ref: '#/components/schemas/ApiResponseGeneralFailure'
/shsh3/list.php:
get:
tags:
- shsh
summary: Get information about SHSH blobs saved with shsh.host
parameters:
- in: query
name: ecid
schema:
type: string
example: C646C2468402E
required: true
responses:
200:
description: ARX8x should really start setting HTTP response codes
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/ApiResponseListSuccess'
- $ref: '#/components/schemas/ApiResponseGeneralFailure'
/shsh3/verify.php:
post:
tags:
- shsh
summary: verify an SHSH blob
requestBody:
description: information about the blob to verify
content:
multipart/form-data:
schema:
$ref: '#/components/schemas/SHSH3VerifyRequest'
responses:
200:
description: ARX8x should really start setting HTTP response codes
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/ApiResponseGeneralFailure'
# $ref: '#/components/schemas/ApiResponseVerify'
/apticket_n/:
post:
tags:
- apticket
summary: Send an APTicket.der to shsh.host for conversion
requestBody:
description: information about the blob to submit
content:
multipart/form-data:
schema:
$ref: '#/components/schemas/ApTicketSubmitRequest'
responses:
200:
description: ARX8x should really start setting HTTP response codes
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/ApiResponseGeneralFailure'
# $ref: '#/components/schemas/ApiResponseSubmit'
components:
schemas:
Firmware:
type: object
properties:
version:
type: string
example: 14.8
build:
type: string
example: 18H17
Device:
type: object
properties:
device:
type: string
example: iPhone10,5
boardconfig:
type: string
example: d211ap
ecid:
type: string
example: C646C2468402E
FileBase:
allOf:
- $ref: '#/components/schemas/Firmware'
- $ref: '#/components/schemas/Device'
- type: object
properties:
url:
type: string
format: uri
example: https://shsh.host/3488115350585390/15.3RC/3488115350585390_iPhone10,5_d211ap_15.3-19D49_27325c8258be46e69d9ee57fa9a8fbc28b873df434e5e702a8b27999551138ae.shsh2
extension:
type: string
example: shsh2
nonce:
type: string
example: 83f71f18b6dfc370758ad9b4c46d847541e0413776e7aa65cdacf9c97c0de7d1
generator:
type: string
example: '0xbd34a880be0b53f3'
size:
type: number
example: 62544
size_str:
type: string
example: 62.54 KB
Build:
allOf:
- $ref: '#/components/schemas/FileBase'
- type: object
properties:
code:
type: number
example: 0
message:
type: string
example: SHSH saved successfully
File:
allOf:
- $ref: '#/components/schemas/FileBase'
- type: object
properties:
validity:
type: boolean
example: true
ApNonceRequest:
type: object
required:
- ecid
properties:
ecid:
type: string
example: C646C2468402E
SHSH3SaveRequest:
allOf:
- $ref: '#/components/schemas/Device'
- type: object
required:
- ecid
- boardconfig
- device
- selected_firmware
- generator
properties:
selected_firmware:
type: string
example: 18H17
generator:
type: string
example: '0xbd34a880be0b53f3'
apnonce:
type: string
example: 83f71f18b6dfc370758ad9b4c46d847541e0413776e7aa65cdacf9c97c0de7d1
SHSH3FirmwareRequest:
type: object
required:
- device
- firmware
properties:
device:
type: string
example: iPhone10,5
firmware:
type: string
example: signed
SHSH3ListMyNonceRequest:
type: object
required:
- device
- ecid
properties:
device:
type: string
example: iPhone10,5
ecid:
type: string
example: C646C2468402E
SHSH3VerifyRequest:
type: object
required:
- ticket
- device
- boardconfig
- build
- g-recaptcha-response
properties:
ticket:
type: string
format: binary
device:
type: string
example: iPhone10,5
boardconfig:
type: string
example: d211ap
build:
type: string
example: 18H17
g-recaptcha-response:
type: string
ApTicketSubmitRequest:
required:
- device
- boardconfig
- ecid
- version
- build
- apticket
allOf:
- $ref: '#/components/schemas/Device'
- $ref: '#/components/schemas/Firmware'
- type: object
properties:
apticket:
type: string
format: binary
ApiResponseApNonceSuccess:
type: object
properties:
code:
type: number
example: 0
message:
type: string
pair:
type: object
properties:
apnonce:
type: string
example: 83f71f18b6dfc370758ad9b4c46d847541e0413776e7aa65cdacf9c97c0de7d1
generator:
type: string
example: '0xbd34a880be0b53f3'
ApiResponseGeneral:
type: object
properties:
code:
type: number
example: 0
message:
type: string
example: Success
ApiResponseGeneralFailure:
type: object
properties:
code:
type: number
example: 405
message:
type: string
example: no pairs found for ECID
ApiResponseSHSH3SaveSuccess:
allOf:
- $ref: '#/components/schemas/ApiResponseGeneral'
- type: object
properties:
builds:
type: object
additionalProperties:
$ref: '#/components/schemas/Build'
ApiResponseListSuccess:
allOf:
- $ref: '#/components/schemas/ApiResponseGeneral'
- type: object
properties:
files:
type: object
additionalProperties:
$ref: '#/components/schemas/File'
ApiResponseSHSH3FirmwareSuccess:
type: object
properties:
code:
type: number
example: 0
builds:
type: object
additionalProperties:
type: string
ApiResponseListMyNonceSuccess:
type: object
properties:
code:
type: number
example: 0
generators:
type: object
additionalProperties:
type: string
example: '0x5dcd56babca9a327'
openapi: 3.0.1
info:
title: TSS Saver API
version: "2"
servers:
- url: https://tsssaver.1conan.com/v2/api
paths:
/save.php:
post:
summary: Saves SHSH blobs for currently signed versions
requestBody:
description: Information for the device that needs to be saved
content:
application/json:
schema:
$ref: '#/components/schemas/SaveRequest'
required: true
responses:
200:
description: Successfully added device to queue
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponseSuccess'
400:
description: Required keys are missing, or their values are invalid
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponseErr'
components:
schemas:
SaveRequest:
required:
- boardConfig
- deviceIdentifier
- ecid
type: object
properties:
ecid:
type: string
example: 218007211622446
deviceIdentifier:
type: string
example: iPhone10,5
boardConfig:
type: string
example: D211AP
apnonce:
type: string
example: 83f71f18b6dfc370758ad9b4c46d847541e0413776e7aa65cdacf9c97c0de7d1
generator:
type: string
example: '0xBD34A880BE0B53F3'
ApiResponseErr:
type: object
properties:
errors:
type: array
items:
type: string
example: "Invalid Board Config"
ApiResponseSuccess:
type: object
properties:
ecid:
type: string
example: 218007211622446
url:
type: string
example: https://tsssaver.1conan.com/shsh/218007211622446
jobs:
type: number
example: 8
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment