⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 protocol.h

📁 安全开发库。含客户端建立ssl连接、签名、证书验证、证书发布和撤销等。编译用到nss
💻 H
字号:
/*  * The contents of this file are subject to the Mozilla Public * License Version 1.1 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of * the License at http://www.mozilla.org/MPL/ *  * Software distributed under the License is distributed on an "AS * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or * implied. See the License for the specific language governing * rights and limitations under the License. *  * The Original Code is the Netscape security libraries. *  * The Initial Developer of the Original Code is Netscape * Communications Corporation.  Portions created by Netscape are  * Copyright (C) 1994-2000 Netscape Communications Corporation.  All * Rights Reserved. *  * Contributor(s): *  * Alternatively, the contents of this file may be used under the * terms of the GNU General Public License Version 2 or later (the * "GPL"), in which case the provisions of the GPL are applicable  * instead of those above.  If you wish to allow use of your  * version of this file only under the terms of the GPL and not to * allow others to use your version of this file under the MPL, * indicate your decision by deleting the provisions above and * replace them with the notice and other provisions required by * the GPL.  If you do not delete the provisions above, a recipient * may use your version of this file under either the MPL or the * GPL. *//*  protocol.h - Definitions of various items to support the PSM protocol. */#ifndef __PROTOCOL_H__#define __PROTOCOL_H__#include "rsrcids.h"#define SSMPRStatus SSMStatus#define SSMPR_SUCCESS SSM_SUCCESS#define SSMPR_FAILURE SSM_FAILURE#define SSMPR_INVALID_ARGUMENT_ERROR PR_INVALID_ARGUMENT_ERROR#define SSMPR_OUT_OF_MEMORY_ERROR    PR_OUT_OF_MEMORY_ERROR#define SSMPRInt32 PRInt32#define SSMPRUint32 PRUint32#define SSMPR_ntohl  PR_ntohl#define SSMPR_htonl  PR_htonl#define SSMPORT_Free   PORT_Free#define SSMPORT_ZAlloc PORT_ZAlloc#define SSMPR_SetError PR_SetError#define SSMPR_GetError PR_GetError#define SSMPORT_SetError PORT_SetError#define SSMPORT_GetError PORT_GetError/*    Current version of PSM protocol.    Increment this value when the protocol changes. */#define SSMSTRING_PADDED_LENGTH(x) ((((x)+3)/4)*4)#define SSMPORT_ZNEW(type) (type*)SSMPORT_ZAlloc(sizeof(type))#define SSMPORT_ZNewArray(type,size) (type*)SSMPORT_ZAlloc(sizeof(type)*(size))/* Various message structs */struct _SSMHelloRequest {  CMUint32          m_version; /* Protocol version supported by client */  struct _SSMString m_profileName; /* Name of user profile (where to find 				 certs etc) */};struct _SSMHelloReply {  CMInt32           m_result; /* Error, if any, which occurred 				 (0 == success) */  CMUint32          m_version; /* Protocol version supported by PSM */  struct _SSMString m_nonce; /* Session nonce -- must be written to data channels */};struct _SSMRequestSSLDataConnection{  CMUint32          m_flags; /* Flags to indicate to SSM what to do with				the connection */  CMUint32          m_port; /* Port number to connect to */  struct _SSMString m_hostIP; /* IP address of final target machine (not proxy) */  /* struct _SSMString m_hostName; Host name of target machine (for server auth) -- not accessed directly */};struct _SSMReplySSLDataConnection {  CMInt32 m_result; /* Error, if any, which occurred (0 == success) */  CMUint32 m_connectionID; /* Connection ID of newly opened channel */  CMUint32 m_port; /* Port number to which to connect on PSM */};struct _SSMRequestSecurityStatus {  CMUint32 m_connectionID; /* ID of connection of which to stat */};struct _SSMReplySecurityStatus {  CMInt32 m_result; /* Error, if any, which occurred (0 == success) */  CMUint32 m_keySize; /* Key size */  CMUint32 m_secretKeySize; /* Secret key size */  struct _SSMString m_cipherName; /* Name of cipher in use */  /* SSMString m_certificate; -- DER encoded cert     We do not access this as a field, we have to skip over m_cipherName */};/*    Use this macro to jump over strings.   For example, if you wanted to access m_certificate above,    use a line like the following:   char *ptr = &(reply->m_cipherName) + SSM_SIZEOF_STRING(reply->m_cipherName);*/#define SSM_SIZEOF_STRING(str) (SSMSTRING_PADDED_LENGTH(PR_ntohl((str).m_length)) + sizeof(CMUint32))typedef struct _SSMHelloRequest SSMHelloRequest;typedef struct _SSMHelloReply SSMHelloReply;typedef struct _SSMRequestSSLDataConnection SSMRequestSSLDataConnection;typedef struct _SSMReplySSLDataConnection SSMReplySSLDataConnection;typedef struct _SSMRequestSecurityStatus SSMRequestSecurityStatus;typedef struct _SSMReplySecurityStatus SSMReplySecurityStatus;/*    Functions to convert between an SSMString and a C string.   Return values are allocated using PR_Malloc (which means that   SSMPR_Free must be used to free up the memory after use). */CMTStatus SSM_StringToSSMString(SSMString ** ssmString, int len, char * string);CMTStatus SSM_SSMStringToString(char ** string,int *len, SSMString * ssmString);#endif /* __PROTOCOL_H__ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -