c-libp2p/include/libp2p/secio/secio.h

30 lines
723 B
C
Raw Normal View History

2017-02-01 12:52:09 +00:00
#pragma once
#include "libp2p/crypto/key.h"
#include "libp2p/crypto/rsa.h"
2017-02-01 12:52:09 +00:00
/**
* A secure connection
*/
enum IPTrafficType { TCP, UDP };
2017-02-01 12:52:09 +00:00
struct SecureSession {
// to get the connection started
char* host;
int port;
enum IPTrafficType traffic_type;
// once the connection is established
2017-02-01 12:52:09 +00:00
int socket_descriptor;
struct PublicKey remote_key;
char* remote_peer_id;
2017-02-01 12:52:09 +00:00
};
/***
* performs initial communication over an insecure channel to share
* keys, IDs, and initiate connection. This is a framed messaging system
* @param session the secure session to be filled
* @returns true(1) on success, false(0) otherwise
*/
int libp2p_secio_handshake(struct SecureSession* session, struct RsaPrivateKey* private_key);