CreateRegistrationResponse Input: - request, a RegistrationRequest structure. - server_public_key, the server's public key. - credential_identifier, an identifier that uniquely represents the credential. - oprf_seed, the seed of Nh bytes used by the server to generate an oprf_key. Output: - response, a RegistrationResponse structure. Exceptions: - DeserializeError, when OPRF element deserialization fails. - DeriveKeyPairError, when OPRF key derivation fails. def CreateRegistrationResponse(request, server_public_key, credential_identifier, oprf_seed): seed = Expand(oprf_seed, concat(credential_identifier, "OprfKey"), Nok) (oprf_key, _) = DeriveKeyPair(seed, "OPAQUE-DeriveKeyPair") blinded_element = DeserializeElement(request.blinded_message) evaluated_element = BlindEvaluate(oprf_key, blinded_element) evaluated_message = SerializeElement(evaluated_element) response = RegistrationResponse { evaluated_message, server_public_key } return response