mirror of
https://github.com/coturn/coturn.git
synced 2025-11-05 09:21:34 +01:00
oauth stuff moved out of 'new' because it is more-or-less established now
This commit is contained in:
parent
b62ec2c49b
commit
8e3834ce1b
@ -154,6 +154,119 @@
|
|||||||
#define STUN_ATTRIBUTE_MOBILITY_SUPPORT (0x8000)
|
#define STUN_ATTRIBUTE_MOBILITY_SUPPORT (0x8000)
|
||||||
/* <<== Mobility */
|
/* <<== Mobility */
|
||||||
|
|
||||||
|
/* SHA ==>> */
|
||||||
|
|
||||||
|
#define SHA1SIZEBYTES (20)
|
||||||
|
#define SHA256SIZEBYTES (32)
|
||||||
|
#define SHA384SIZEBYTES (48)
|
||||||
|
#define SHA512SIZEBYTES (64)
|
||||||
|
|
||||||
|
#define MAXSHASIZE (128)
|
||||||
|
|
||||||
|
enum _SHATYPE {
|
||||||
|
SHATYPE_ERROR = -1,
|
||||||
|
SHATYPE_DEFAULT=0,
|
||||||
|
SHATYPE_SHA1=SHATYPE_DEFAULT,
|
||||||
|
SHATYPE_SHA256,
|
||||||
|
SHATYPE_SHA384,
|
||||||
|
SHATYPE_SHA512
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef enum _SHATYPE SHATYPE;
|
||||||
|
|
||||||
|
#define shatype_name(sht) ((sht == SHATYPE_SHA1) ? "SHA1" : ((sht == SHATYPE_SHA256) ? "SHA256" : ((sht == SHATYPE_SHA384) ? "SHA384" : "SHA512")))
|
||||||
|
|
||||||
|
/* <<== SHA */
|
||||||
|
|
||||||
|
/* OAUTH TOKEN ENC ALG ==> */
|
||||||
|
|
||||||
|
enum _ENC_ALG {
|
||||||
|
ENC_ALG_ERROR=-1,
|
||||||
|
#if !defined(TURN_NO_GCM)
|
||||||
|
ENC_ALG_DEFAULT=0,
|
||||||
|
A256GCM=ENC_ALG_DEFAULT,
|
||||||
|
A128GCM,
|
||||||
|
#endif
|
||||||
|
ENC_ALG_NUM
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef enum _ENC_ALG ENC_ALG;
|
||||||
|
|
||||||
|
/* <<== OAUTH TOKEN ENC ALG */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* oAuth struct
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define STUN_ATTRIBUTE_THIRD_PARTY_AUTHORIZATION (0x802E)
|
||||||
|
#define STUN_ATTRIBUTE_OAUTH_ACCESS_TOKEN (0x001B)
|
||||||
|
|
||||||
|
#define OAUTH_KID_SIZE (128)
|
||||||
|
#define OAUTH_HASH_FUNC_SIZE (64)
|
||||||
|
#define OAUTH_ALG_SIZE (64)
|
||||||
|
#define OAUTH_KEY_SIZE (256)
|
||||||
|
#define OAUTH_GCM_NONCE_SIZE (12)
|
||||||
|
#define OAUTH_MAX_NONCE_SIZE (256)
|
||||||
|
#define OAUTH_GCM_TAG_SIZE (16)
|
||||||
|
#define OAUTH_ENC_ALG_BLOCK_SIZE (16)
|
||||||
|
|
||||||
|
#define OAUTH_DEFAULT_LIFETIME (0)
|
||||||
|
#define OAUTH_DEFAULT_TIMESTAMP (turn_time())
|
||||||
|
|
||||||
|
#define OAUTH_TIME_DELTA (5)
|
||||||
|
|
||||||
|
struct _oauth_key_data {
|
||||||
|
char kid[OAUTH_KID_SIZE+1];
|
||||||
|
char ikm_key[OAUTH_KEY_SIZE+1];
|
||||||
|
size_t ikm_key_size;
|
||||||
|
turn_time_t timestamp;
|
||||||
|
turn_time_t lifetime;
|
||||||
|
char as_rs_alg[OAUTH_ALG_SIZE+1];
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef struct _oauth_key_data oauth_key_data;
|
||||||
|
|
||||||
|
struct _oauth_key {
|
||||||
|
char kid[OAUTH_KID_SIZE+1];
|
||||||
|
char ikm_key[OAUTH_KEY_SIZE+1];
|
||||||
|
size_t ikm_key_size;
|
||||||
|
turn_time_t timestamp;
|
||||||
|
turn_time_t lifetime;
|
||||||
|
ENC_ALG as_rs_alg;
|
||||||
|
char as_rs_key[OAUTH_KEY_SIZE+1];
|
||||||
|
size_t as_rs_key_size;
|
||||||
|
char auth_key[OAUTH_KEY_SIZE+1];
|
||||||
|
size_t auth_key_size;
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef struct _oauth_key oauth_key;
|
||||||
|
|
||||||
|
struct _oauth_encrypted_block {
|
||||||
|
uint16_t nonce_length;
|
||||||
|
uint8_t nonce[OAUTH_MAX_NONCE_SIZE];
|
||||||
|
uint16_t key_length;
|
||||||
|
uint8_t mac_key[MAXSHASIZE];
|
||||||
|
uint64_t timestamp;
|
||||||
|
uint32_t lifetime;
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef struct _oauth_encrypted_block oauth_encrypted_block;
|
||||||
|
|
||||||
|
struct _oauth_token {
|
||||||
|
oauth_encrypted_block enc_block;
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef struct _oauth_token oauth_token;
|
||||||
|
|
||||||
|
#define MAX_ENCODED_OAUTH_TOKEN_SIZE (1024)
|
||||||
|
|
||||||
|
struct _encoded_oauth_token {
|
||||||
|
char token[MAX_ENCODED_OAUTH_TOKEN_SIZE];
|
||||||
|
size_t size;
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef struct _encoded_oauth_token encoded_oauth_token;
|
||||||
|
|
||||||
////////////////////////////////////////////////
|
////////////////////////////////////////////////
|
||||||
|
|
||||||
#endif //__LIB_TURN_MSG_DEFS__
|
#endif //__LIB_TURN_MSG_DEFS__
|
||||||
|
|||||||
@ -44,119 +44,6 @@
|
|||||||
|
|
||||||
/* <<== Bandwidth */
|
/* <<== Bandwidth */
|
||||||
|
|
||||||
/* SHA ==>> */
|
|
||||||
|
|
||||||
#define SHA1SIZEBYTES (20)
|
|
||||||
#define SHA256SIZEBYTES (32)
|
|
||||||
#define SHA384SIZEBYTES (48)
|
|
||||||
#define SHA512SIZEBYTES (64)
|
|
||||||
|
|
||||||
#define MAXSHASIZE (128)
|
|
||||||
|
|
||||||
enum _SHATYPE {
|
|
||||||
SHATYPE_ERROR = -1,
|
|
||||||
SHATYPE_DEFAULT=0,
|
|
||||||
SHATYPE_SHA1=SHATYPE_DEFAULT,
|
|
||||||
SHATYPE_SHA256,
|
|
||||||
SHATYPE_SHA384,
|
|
||||||
SHATYPE_SHA512
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef enum _SHATYPE SHATYPE;
|
|
||||||
|
|
||||||
#define shatype_name(sht) ((sht == SHATYPE_SHA1) ? "SHA1" : ((sht == SHATYPE_SHA256) ? "SHA256" : ((sht == SHATYPE_SHA384) ? "SHA384" : "SHA512")))
|
|
||||||
|
|
||||||
/* <<== SHA */
|
|
||||||
|
|
||||||
/* OAUTH TOKEN ENC ALG ==> */
|
|
||||||
|
|
||||||
enum _ENC_ALG {
|
|
||||||
ENC_ALG_ERROR=-1,
|
|
||||||
#if !defined(TURN_NO_GCM)
|
|
||||||
ENC_ALG_DEFAULT=0,
|
|
||||||
A256GCM=ENC_ALG_DEFAULT,
|
|
||||||
A128GCM,
|
|
||||||
#endif
|
|
||||||
ENC_ALG_NUM
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef enum _ENC_ALG ENC_ALG;
|
|
||||||
|
|
||||||
/* <<== OAUTH TOKEN ENC ALG */
|
|
||||||
|
|
||||||
/**
|
|
||||||
* oAuth struct
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define STUN_ATTRIBUTE_THIRD_PARTY_AUTHORIZATION (0x802E)
|
|
||||||
#define STUN_ATTRIBUTE_OAUTH_ACCESS_TOKEN (0x001B)
|
|
||||||
|
|
||||||
#define OAUTH_KID_SIZE (128)
|
|
||||||
#define OAUTH_HASH_FUNC_SIZE (64)
|
|
||||||
#define OAUTH_ALG_SIZE (64)
|
|
||||||
#define OAUTH_KEY_SIZE (256)
|
|
||||||
#define OAUTH_GCM_NONCE_SIZE (12)
|
|
||||||
#define OAUTH_MAX_NONCE_SIZE (256)
|
|
||||||
#define OAUTH_GCM_TAG_SIZE (16)
|
|
||||||
#define OAUTH_ENC_ALG_BLOCK_SIZE (16)
|
|
||||||
|
|
||||||
#define OAUTH_DEFAULT_LIFETIME (0)
|
|
||||||
#define OAUTH_DEFAULT_TIMESTAMP (turn_time())
|
|
||||||
|
|
||||||
#define OAUTH_TIME_DELTA (5)
|
|
||||||
|
|
||||||
struct _oauth_key_data {
|
|
||||||
char kid[OAUTH_KID_SIZE+1];
|
|
||||||
char ikm_key[OAUTH_KEY_SIZE+1];
|
|
||||||
size_t ikm_key_size;
|
|
||||||
turn_time_t timestamp;
|
|
||||||
turn_time_t lifetime;
|
|
||||||
char as_rs_alg[OAUTH_ALG_SIZE+1];
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef struct _oauth_key_data oauth_key_data;
|
|
||||||
|
|
||||||
struct _oauth_key {
|
|
||||||
char kid[OAUTH_KID_SIZE+1];
|
|
||||||
char ikm_key[OAUTH_KEY_SIZE+1];
|
|
||||||
size_t ikm_key_size;
|
|
||||||
turn_time_t timestamp;
|
|
||||||
turn_time_t lifetime;
|
|
||||||
ENC_ALG as_rs_alg;
|
|
||||||
char as_rs_key[OAUTH_KEY_SIZE+1];
|
|
||||||
size_t as_rs_key_size;
|
|
||||||
char auth_key[OAUTH_KEY_SIZE+1];
|
|
||||||
size_t auth_key_size;
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef struct _oauth_key oauth_key;
|
|
||||||
|
|
||||||
struct _oauth_encrypted_block {
|
|
||||||
uint16_t nonce_length;
|
|
||||||
uint8_t nonce[OAUTH_MAX_NONCE_SIZE];
|
|
||||||
uint16_t key_length;
|
|
||||||
uint8_t mac_key[MAXSHASIZE];
|
|
||||||
uint64_t timestamp;
|
|
||||||
uint32_t lifetime;
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef struct _oauth_encrypted_block oauth_encrypted_block;
|
|
||||||
|
|
||||||
struct _oauth_token {
|
|
||||||
oauth_encrypted_block enc_block;
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef struct _oauth_token oauth_token;
|
|
||||||
|
|
||||||
#define MAX_ENCODED_OAUTH_TOKEN_SIZE (1024)
|
|
||||||
|
|
||||||
struct _encoded_oauth_token {
|
|
||||||
char token[MAX_ENCODED_OAUTH_TOKEN_SIZE];
|
|
||||||
size_t size;
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef struct _encoded_oauth_token encoded_oauth_token;
|
|
||||||
|
|
||||||
////////////// SSODA ///////////////////
|
////////////// SSODA ///////////////////
|
||||||
|
|
||||||
#define STUN_ATTRIBUTE_ADDITIONAL_ADDRESS_FAMILY (0x8032)
|
#define STUN_ATTRIBUTE_ADDITIONAL_ADDRESS_FAMILY (0x8032)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user