~ubuntu-branches/debian/sid/coturn/sid

« back to all changes in this revision

Viewing changes to src/client/ns_turn_msg_defs_new.h

  • Committer: Package Import Robot
  • Author(s): Oleg Moskalenko
  • Date: 2015-05-27 00:17:29 UTC
  • mto: This revision was merged to the branch mainline in revision 24.
  • Revision ID: package-import@ubuntu.com-20150527001729-x6r63z5s1steoc28
Tags: upstream-4.4.5.1
ImportĀ upstreamĀ versionĀ 4.4.5.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
44
44
 
45
45
/* <<== Bandwidth */
46
46
 
47
 
/* SHA AGILITY ==>> */
 
47
/* SHA ==>> */
48
48
 
49
49
#define SHA1SIZEBYTES (20)
50
50
#define SHA256SIZEBYTES (32)
66
66
 
67
67
#define shatype_name(sht) ((sht == SHATYPE_SHA1) ? "SHA1" : ((sht == SHATYPE_SHA256) ? "SHA256" : ((sht == SHATYPE_SHA384) ? "SHA384" : "SHA512")))
68
68
 
69
 
#define SHA_TOO_WEAK_ERROR_CODE (426)
70
 
#define SHA_TOO_WEAK_ERROR_REASON ((const u08bits*)("credentials too weak"))
71
 
 
72
 
/* <<== SHA AGILITY */
 
69
/* <<== SHA */
73
70
 
74
71
/* OAUTH TOKEN ENC ALG ==> */
75
72
 
76
73
enum _ENC_ALG {
77
74
        ENC_ALG_ERROR=-1,
 
75
#if !defined(TURN_NO_GCM)
78
76
        ENC_ALG_DEFAULT=0,
79
 
        AES_256_CBC=ENC_ALG_DEFAULT,
80
 
        AES_128_CBC,
81
 
        AEAD_AES_128_GCM,
82
 
        AEAD_AES_256_GCM,
83
 
        ENG_ALG_NUM
 
77
        A256GCM=ENC_ALG_DEFAULT,
 
78
        A128GCM,
 
79
#endif
 
80
        ENC_ALG_NUM
84
81
};
85
82
 
86
83
typedef enum _ENC_ALG ENC_ALG;
87
84
 
88
85
/* <<== OAUTH TOKEN ENC ALG */
89
86
 
90
 
/* OAUTH TOKEN AUTH ALG ==> */
91
 
 
92
 
enum _AUTH_ALG {
93
 
        AUTH_ALG_ERROR = -1,
94
 
        AUTH_ALG_UNDEFINED = 0,
95
 
        AUTH_ALG_DEFAULT = 1,
96
 
        AUTH_ALG_HMAC_SHA_256_128 = AUTH_ALG_DEFAULT,
97
 
        AUTH_ALG_HMAC_SHA_1,
98
 
        AUTH_ALG_HMAC_SHA_256,
99
 
        AUTH_ALG_HMAC_SHA_384,
100
 
        AUTH_ALG_HMAC_SHA_512
101
 
};
102
 
 
103
 
typedef enum _AUTH_ALG AUTH_ALG;
104
 
 
105
 
/* <<== OAUTH TOKEN AUTH ALG */
106
 
 
107
87
/**
108
88
 * oAuth struct
109
89
 */
115
95
#define OAUTH_HASH_FUNC_SIZE (64)
116
96
#define OAUTH_ALG_SIZE (64)
117
97
#define OAUTH_KEY_SIZE (256)
118
 
#define OAUTH_AEAD_NONCE_SIZE (12)
119
 
#define OAUTH_AEAD_TAG_SIZE (16)
 
98
#define OAUTH_GCM_NONCE_SIZE (12)
 
99
#define OAUTH_MAX_NONCE_SIZE (256)
 
100
#define OAUTH_GCM_TAG_SIZE (16)
120
101
#define OAUTH_ENC_ALG_BLOCK_SIZE (16)
121
102
 
122
103
#define OAUTH_DEFAULT_LIFETIME (0)
130
111
        size_t ikm_key_size;
131
112
        turn_time_t timestamp;
132
113
        turn_time_t lifetime;
133
 
        char hkdf_hash_func[OAUTH_HASH_FUNC_SIZE+1];
134
114
        char as_rs_alg[OAUTH_ALG_SIZE+1];
135
 
        char as_rs_key[OAUTH_KEY_SIZE+1];
136
 
        size_t as_rs_key_size;
137
 
        char auth_alg[OAUTH_ALG_SIZE+1];
138
 
        char auth_key[OAUTH_KEY_SIZE+1];
139
 
        size_t auth_key_size;
140
115
};
141
116
 
142
117
typedef struct _oauth_key_data oauth_key_data;
147
122
        size_t ikm_key_size;
148
123
        turn_time_t timestamp;
149
124
        turn_time_t lifetime;
150
 
        SHATYPE hkdf_hash_func;
151
125
        ENC_ALG as_rs_alg;
152
126
        char as_rs_key[OAUTH_KEY_SIZE+1];
153
127
        size_t as_rs_key_size;
154
 
        AUTH_ALG auth_alg;
155
128
        char auth_key[OAUTH_KEY_SIZE+1];
156
129
        size_t auth_key_size;
157
130
};
159
132
typedef struct _oauth_key oauth_key;
160
133
 
161
134
struct _oauth_encrypted_block {
 
135
        uint16_t nonce_length;
 
136
        uint8_t nonce[OAUTH_MAX_NONCE_SIZE];
162
137
        uint16_t key_length;
163
138
        uint8_t mac_key[MAXSHASIZE];
164
139
        uint64_t timestamp;