From c11decee92748a7c6ea4294b0954438c6cf5d782 Mon Sep 17 00:00:00 2001 From: Edoardo La Greca Date: Sat, 2 Aug 2025 19:08:05 +0200 Subject: add Authenticator, Authenticator9PAnyV2DP9IK (draft), FailedAuthenticationException --- src/main/kotlin/Authenticator.kt | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 src/main/kotlin/Authenticator.kt (limited to 'src/main/kotlin/Authenticator.kt') diff --git a/src/main/kotlin/Authenticator.kt b/src/main/kotlin/Authenticator.kt new file mode 100644 index 0000000..a146840 --- /dev/null +++ b/src/main/kotlin/Authenticator.kt @@ -0,0 +1,18 @@ +/** + * The Authenticator interface provides methods for authenticating a user over an established protocol connection. + */ +interface Authenticator { + /** + * Authenticate a user identified by the given [username] and whose authenticity is confirmed by the given + * [password]. The authentication protocol can read and write data within the underlying connection using [readFun] + * and [writeFun]. + * + * @param username The name the user goes by. + * @param password The confirmation of the user's authenticity. + * @param readFun A function to read incoming data from the underlying connection. + * @param writeFun A function to write outgoing data into the underlying connection. + * @throws FailedAuthenticationException if the authentication could not be performed. A human-readable reason for + * the failure can be provided if necessary. + */ + fun authenticate(username: String, password: String, readFun: () -> Array, writeFun: (b: Array) -> Unit) +} \ No newline at end of file -- cgit v1.2.3