libssh  0.7.2
include/libssh/ed25519.h
00001 /*
00002  * This file is part of the SSH Library
00003  *
00004  * Copyright (c) 2014 by Aris Adamantiadis
00005  *
00006  * This library is free software; you can redistribute it and/or
00007  * modify it under the terms of the GNU Lesser General Public
00008  * License as published by the Free Software Foundation; either
00009  * version 2.1 of the License, or (at your option) any later version.
00010  *
00011  * This library is distributed in the hope that it will be useful,
00012  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00013  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014  * Lesser General Public License for more details.
00015  *
00016  * You should have received a copy of the GNU Lesser General Public
00017  * License along with this library; if not, write to the Free Software
00018  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
00019  */
00020 
00021 #ifndef ED25519_H_
00022 #define ED25519_H_
00023 #include "libssh/priv.h"
00024 
00032 #define ED25519_PK_LEN 32
00033 #define ED25519_SK_LEN 64
00034 #define ED25519_SIG_LEN 64
00035 
00036 typedef uint8_t ed25519_pubkey[ED25519_PK_LEN];
00037 typedef uint8_t ed25519_privkey[ED25519_SK_LEN];
00038 typedef uint8_t ed25519_signature[ED25519_SIG_LEN];
00039 
00046 int crypto_sign_ed25519_keypair(ed25519_pubkey pk, ed25519_privkey sk);
00047 
00058 int crypto_sign_ed25519(
00059     unsigned char *sm,unsigned long long *smlen,
00060     const unsigned char *m,unsigned long long mlen,
00061     const ed25519_privkey sk);
00062 
00073 int crypto_sign_ed25519_open(
00074     unsigned char *m,unsigned long long *mlen,
00075     const unsigned char *sm,unsigned long long smlen,
00076     const ed25519_pubkey pk);
00077 
00079 #endif /* ED25519_H_ */