Der Endpunkt /Decrypt dient der Entschlüsselung.
Der Endpunkt unterstützt POST und PUT Anfragen, analog zum /Encrypt Endpunkt.
POST und PUT entschlüsseln verschlüsselter Inhalte. Der Unterschied zwischen POST und PUT ist, dass der Schlüssel vor dem Post auf die Startposition zurückgesetzt wird. Beim PUT hingegen wird der Schlüssel (sofern kein neuer gesetzt wird) nicht zurückgesetzt, so dass man beispielsweise eine Serie von Texten oder Dateien mit einem fortlaufenden Schlüssel entschlüsseln kann. Aber natürlich muss man beim verschlüsseln die gleiche Reihenfolge eingehalten haben.
PUT und POST müssen das folgende JSON im Body übermitteln: {“key”:“[Base64 encodierter Schlüssel]”,“ciperText”:“[Base64 encodierter verschlüsselter Text”,“cipherBinary”:“[Base64 encodierte verschlüsselte Daten]”}
Wenn der Wert von “key” gesetzt wird, wird dieser Schlüssel neu gesetzt. Ist der Wert leer, so wird der letzte in der Session gesetzte Schlüssel verwendet.
cipherText und cipherBinary können beide gesetzt werden, dann werden beide entschlüsselt. Es empfiehlt sich jedoch pro Anfrage nur eine der beiden Optionen zu nutzen. Sowohl im cipherText Feld als auch im cipherBinary Feld müssen die Daten Base64 Encodiert sein.
Header: Es müssen keine Informationen im Header mitgegeben werden, lediglich die JSession Cookies müssen beachtet werden.
Beispiel Request: POST /scAPI/Decrypt HTTP/1.1\r\n Cookie: JSESSIONID=node01cmcgnsvmj1u7hpof54o7zfgr8595.node0;\r\n User-Agent: Apache-HttpClient/4.5.12 (Java/1.8.0_281)\r\n Accept: */*\r\n Connection: Keep-Alive\r\n Host: sancho.hopto.org\r\n Content-Length: 72\r\n BODY {“key”:“”,“cipherText”:“77+yQRDvv4k7d++/ju+/qQHvv74=”,“cipherBinary”:“”}
Response: {“code”:202,“message”:“Accepted”,“error”:0,“errorMsg”:“”,“plainText”:“Test 1 2 3”,“plainBinary”:null}