github.com/fmitra/srp (go): Package srp implements the Secure Remote Password Protocol (Version 6a)  SRP-6a is a password-authenticated key agreement (PAKE) protocol where a client/user demonstrates to a server that they know the password without sending the password or any other information from which a password can be inferred.  The goal of SRP is for both client and server to generate the same session key (K), which they prove by sharing a hash (M) of several known parameters and attempting to replicate the value. Validating the value of M proves that the server and client are each aware of their long term secrets x (client secret) and v (server secret)  RFC 2945: The SRP Authentication and Key Exchange System https://tools.ietf.org/html/rfc2945  RFC 5054:  Using the Secure Remote Password (SRP) Protocol for TLS Authentication https://tools.ietf.org/html/rfc5054  Operations  Roles  Key  Scenario: Client (C) establishes a password with Server (S)  Scenario: Client (C) demonstrates proof of password to Server (S)  Initial hash of shared public keys  Calculation of keys:  Confirmation of proof:  Full authentication is as follows:
Keywords: srp