libssh
0.12.2
The SSH library
Toggle main menu visibility
Loading...
Searching...
No Matches
curve25519.h
1
/*
2
* This file is part of the SSH Library
3
*
4
* Copyright (c) 2013 by Aris Adamantiadis <aris@badcode.be>
5
*
6
* This library is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU Lesser General Public
8
* License as published by the Free Software Foundation,
9
* version 2.1 of the License.
10
*
11
* This library is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
* Lesser General Public License for more details.
15
*
16
* You should have received a copy of the GNU Lesser General Public
17
* License along with this library; if not, write to the Free Software
18
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19
*/
20
21
#ifndef CURVE25519_H_
22
#define CURVE25519_H_
23
24
#include "config.h"
25
#include "libssh.h"
26
27
#ifdef WITH_NACL
28
29
#include <nacl/crypto_scalarmult_curve25519.h>
30
#define CURVE25519_PUBKEY_SIZE crypto_scalarmult_curve25519_BYTES
31
#define CURVE25519_PRIVKEY_SIZE crypto_scalarmult_curve25519_SCALARBYTES
32
#define crypto_scalarmult_base crypto_scalarmult_curve25519_base
33
#define crypto_scalarmult crypto_scalarmult_curve25519
34
#else
35
36
#ifdef __cplusplus
37
extern
"C"
{
38
#endif
39
40
#define CURVE25519_PUBKEY_SIZE 32
41
#define CURVE25519_PRIVKEY_SIZE 32
42
int
crypto_scalarmult_base(
unsigned
char
*q,
const
unsigned
char
*n);
43
int
crypto_scalarmult(
unsigned
char
*q,
const
unsigned
char
*n,
const
unsigned
char
*p);
44
#endif
/* WITH_NACL */
45
46
#ifdef HAVE_ECC
47
#define HAVE_CURVE25519 1
48
#endif
49
50
typedef
unsigned
char
ssh_curve25519_pubkey[CURVE25519_PUBKEY_SIZE];
51
typedef
unsigned
char
ssh_curve25519_privkey[CURVE25519_PRIVKEY_SIZE];
52
53
int
ssh_curve25519_init(ssh_session session);
54
int
curve25519_do_create_k(ssh_session session, ssh_curve25519_pubkey k);
55
int
ssh_curve25519_create_k(ssh_session session, ssh_curve25519_pubkey k);
56
int
ssh_curve25519_build_k(ssh_session session);
57
58
int
ssh_client_curve25519_init(ssh_session session);
59
void
ssh_client_curve25519_remove_callbacks(ssh_session session);
60
61
#ifdef WITH_SERVER
62
void
ssh_server_curve25519_init(ssh_session session);
63
#endif
/* WITH_SERVER */
64
65
#ifdef __cplusplus
66
}
67
#endif
68
69
#endif
/* CURVE25519_H_ */
include
libssh
curve25519.h
Generated by
1.18.0