mirror of
https://github.com/ossrs/srs.git
synced 2025-03-09 15:49:59 +00:00
SRT: Build SRT from source by SRS. 4.0.115
This commit is contained in:
parent
262f0fc8c8
commit
90f1b482ab
115 changed files with 44513 additions and 19 deletions
97
trunk/3rdparty/srt-1-fit/haicrypt/hcrypt_ctx.h
vendored
Normal file
97
trunk/3rdparty/srt-1-fit/haicrypt/hcrypt_ctx.h
vendored
Normal file
|
@ -0,0 +1,97 @@
|
|||
/*
|
||||
* SRT - Secure, Reliable, Transport
|
||||
* Copyright (c) 2018 Haivision Systems Inc.
|
||||
*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
written by
|
||||
Haivision Systems Inc.
|
||||
|
||||
2011-06-23 (jdube)
|
||||
HaiCrypt initial implementation.
|
||||
2014-03-11 (jdube)
|
||||
Adaptation for SRT.
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef HCRYPT_CTX_H
|
||||
#define HCRYPT_CTX_H
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <sys/types.h>
|
||||
#include "hcrypt.h"
|
||||
|
||||
#if !defined(HAISRT_VERSION_INT)
|
||||
#include "haicrypt.h"
|
||||
#include "hcrypt_msg.h"
|
||||
#else
|
||||
// Included by haisrt.h or similar
|
||||
#include "haisrt/haicrypt.h"
|
||||
#include "haisrt/hcrypt_msg.h"
|
||||
#endif
|
||||
|
||||
typedef struct {
|
||||
unsigned char *pfx; //Prefix described by transport msg info (in ctx)
|
||||
unsigned char *payload;
|
||||
size_t len; //Payload size
|
||||
}hcrypt_DataDesc;
|
||||
|
||||
|
||||
typedef struct tag_hcrypt_Ctx {
|
||||
struct tag_hcrypt_Ctx * alt; /* Alternative ctx (even/odd) */
|
||||
|
||||
#define HCRYPT_CTX_F_MSG 0x00FF /* Aligned wiht message header flags */
|
||||
#define HCRYPT_CTX_F_eSEK HCRYPT_MSG_F_eSEK
|
||||
#define HCRYPT_CTX_F_oSEK HCRYPT_MSG_F_oSEK
|
||||
#define HCRYPT_CTX_F_xSEK HCRYPT_MSG_F_xSEK
|
||||
|
||||
#define HCRYPT_CTX_F_ENCRYPT 0x0100 /* 0:decrypt 1:encrypt */
|
||||
#define HCRYPT_CTX_F_ANNOUNCE 0x0200 /* Announce KM */
|
||||
#define HCRYPT_CTX_F_TTSEND 0x0400 /* time to send */
|
||||
unsigned flags;
|
||||
#define hcryptCtx_GetKeyFlags(ctx) ((ctx)->flags & HCRYPT_CTX_F_xSEK)
|
||||
#define hcryptCtx_GetKeyIndex(ctx) (((ctx)->flags & HCRYPT_CTX_F_xSEK)>>1)
|
||||
|
||||
#define HCRYPT_CTX_S_INIT 1
|
||||
#define HCRYPT_CTX_S_SARDY 2 /* Security Association (KEK) ready */
|
||||
#define HCRYPT_CTX_S_KEYED 3 /* Media Stream Encrypting Key (SEK) ready */
|
||||
#define HCRYPT_CTX_S_ACTIVE 4 /* Announced and in use */
|
||||
#define HCRYPT_CTX_S_DEPRECATED 5 /* Still announced but no longer used */
|
||||
unsigned status;
|
||||
|
||||
#define HCRYPT_CTX_MODE_CLRTXT 0 /* NULL cipher (for tests) */
|
||||
#define HCRYPT_CTX_MODE_AESECB 1 /* Electronic Code Book mode */
|
||||
#define HCRYPT_CTX_MODE_AESCTR 2 /* Counter mode */
|
||||
#define HCRYPT_CTX_MODE_AESCBC 3 /* Cipher-block chaining mode */
|
||||
unsigned mode;
|
||||
|
||||
struct {
|
||||
size_t key_len;
|
||||
size_t pwd_len;
|
||||
char pwd[HAICRYPT_PWD_MAX_SZ];
|
||||
} cfg;
|
||||
|
||||
size_t salt_len;
|
||||
unsigned char salt[HAICRYPT_SALT_SZ];
|
||||
|
||||
size_t sek_len;
|
||||
unsigned char sek[HAICRYPT_KEY_MAX_SZ];
|
||||
|
||||
hcrypt_MsgInfo * msg_info; /* Transport message handler */
|
||||
unsigned pkt_cnt; /* Key usage counter */
|
||||
|
||||
#define HCRYPT_CTX_MAX_KM_PFX_SZ 16
|
||||
size_t KMmsg_len;
|
||||
unsigned char KMmsg_cache[HCRYPT_CTX_MAX_KM_PFX_SZ + HCRYPT_MSG_KM_MAX_SZ];
|
||||
|
||||
#define HCRYPT_CTX_MAX_MS_PFX_SZ 16
|
||||
unsigned char MSpfx_cache[HCRYPT_CTX_MAX_MS_PFX_SZ];
|
||||
} hcrypt_Ctx;
|
||||
|
||||
|
||||
#endif /* HCRYPT_CTX_H */
|
Loading…
Add table
Add a link
Reference in a new issue