https://9dok.net/document/zgwjv38v-encrypts-authenticates-nonempty-string-cipher-invocations-length-underlying.html