API Documentation

Base URL: hostname:8000/cryptops/v0

Encryption:

GET /encryption
Returns the status of the encryption (whether or not you have an encrypted partition)
POST /encryption/init

Encrypts the disk with a password if there are no encrypted disks

Post data: {"password": password}

POST /encryption/unlock

Decrypts the disk using a password and boots the machine

Post data: {"password": password}

POST /encryption/remove

Brings the VPS in a state where the disk is not encrypted and booting does not require a password (does not change the initrd to a “regular” initrd)

Post data: {"password": password}

POST /encryption/selfdestruct
Removes the encryption master key, effectively deleting the encrypted data permanently.

Encryption keys:

GET /encryption/keys
List luks password slots
POST /encryption/keys/

Add a new password to a new Luks slot.

Post data: {"password": password, "new-password": new-password}

PUT /encryption/keys/{slot-id}

Change a luks slot’s password. {slot} corresponds to a slot id listed by GET /encryption/keys.

Post data: {"password": password, "new-password": new-password}

DELETE /encryption/keys/{slot-id}
Delete a password from a luks slot

SSH keys with access to the initrd:

GET /ssh/keys
List SSH keys in the /root/.ssh/authorized_keys file
POST/ssh/keys

Add a key to the authorized_keys file

Post data: {"ssh-key": ssh-key}

PUT /ssh/keys/{key-id}

Change a key in the authorized_keys file

Post data: {"ssh-key": ssh-key}

DELETE /ssh/keys/{key-id}
Delete the key with id {key-id} from the authorized_keys file