/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=2 et sw=2 tw=80: */
#if !defined(NET_FOSSIL_SCM_FSL_AUTH_H_INCLUDED)
#define NET_FOSSIL_SCM_FSL_AUTH_H_INCLUDED
/*
Copyright (c) 2014 D. Richard Hipp
This program is free software; you can redistribute it and/or
modify it under the terms of the Simplified BSD License (also
known as the "2-Clause License" or "FreeBSD License".)
This program is distributed in the hope that it will be useful,
but without any warranty; without even the implied warranty of
merchantability or fitness for a particular purpose.
Author contact information:
drh@hwaci.com
http://www.hwaci.com/drh/
******************************************************************************
This file declares public APIs for handling fossil authentication-related
tasks.
*/
#include "fossil-core.h"
#include "fossil-hash.h"
#if defined(__cplusplus)
extern "C" {
#endif
/**
If f has an opened repository, this function forms a hash from:
"ProjectCode/zLoginName/zPw"
(without the quotes)
where ProjectCode is a repository-instance-dependent series of
random bytes. The returned string is owned by the caller, who
must eventually fsl_free() it. The project code is stored in
the repository's config table under the key 'project-code', and
this routine fetches that key if necessary.
Potential TODO:
- in fossil(1), this function generates a different result (it
returns a copy of zPw) if the project code is not set, under
the assumption that this is "the first xfer request of a
clone." Whether or not that will apply at this level to
libfossil remains to be seen.
*/
char * fsl_sha1_shared_secret( fsl_cx * f, char const * zPw, char const * zLoginName );
#if defined(__cplusplus)
} /*extern "C"*/
#endif
#endif
/* NET_FOSSIL_SCM_FSL_AUTH_H_INCLUDED */