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

📄 ctrlconn.h

📁 安全开发库。含客户端建立ssl连接、签名、证书验证、证书发布和撤销等。编译用到nss
💻 H
字号:
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- *//*  * 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. */#ifndef __SSM_CTRLCONN_H__#define __SSM_CTRLCONN_H__#include "connect.h"#include "cert.h"#include "key.h"#include "hashtbl.h"#include "obscure.h"#include "prefs.h"/*  Control connections. */extern SSMHashTable  * ctrlConnections;struct SSMControlConnection{    SSMConnection super;    /*      ---------------------------------------------      Control connection-specific fields      ---------------------------------------------    */    PRUint32 m_version; /* Protocol version supported by client */    char * m_nonce; /* Nonce used for verifying data connections */    PRFileDesc * m_socket;   /* Socket serviced by this connection object */    PRThread * m_writeThread;/* Write Control thread (writes m_socket) */    PRThread * m_frontEndThread; /* Front end thread - reads m_socket */        char * m_profileName; /* Name of user profile (where to find                              certs etc) */    char * m_dirRoot; /* Path to directory for certs for control connection */    /* Queue for outgoing messages */    SSMCollection *m_controlOutQ;    /* Control msg queue: from readMsg thread                                      to writeMsg thread  */    CERTCertDBHandle *m_certdb;    SECKEYKeyDBHandle *m_keydb;    /* Fields used for out-of-band password requests */    SSMHashTable * m_passwdTable;    PRMonitor * m_passwdLock;    SSMHashTable * m_encrPasswdTable;    PRMonitor * m_encrPasswdLock;    PRInt32 m_waiting;    SSMHashTable *m_resourceDB;    SSMHashTable *m_classRegistry;    SSMHashTable * m_resourceIdDB;    SSMResourceID m_lastRID;    SSMHashTable * m_certIdDB;    SECItem * m_secAdvisorList;    PRInt32 m_certNext;    /* Data socket and port */    PRFileDesc * m_dataSocket;    PRIntn  m_dataPort;        PRBool m_doesUI;    SSMObscureObject *m_obscureObj;    PrefSet* m_prefs;    PRBool m_pkcs11Init;};SSMStatus SSM_InitPolicyHandler(void);SSMStatus SSMControlConnection_Create(void *arg, SSMControlConnection * conn,                                      SSMResource **res);SSMStatus SSMControlConnection_Init(SSMControlConnection *res,                                    SSMResourceType type,                                   PRFileDesc *socket);SSMStatus SSMControlConnection_Shutdown(SSMResource *conn, SSMStatus status);SSMStatus SSMControlConnection_Destroy(SSMResource *res, PRBool doFree);SSMStatus SSMControlConnection_GetAttrIDs(SSMResource* res, SSMAttributeID** ids,                                         PRIntn* count);SSMStatus SSMControlConnection_GetAttr(SSMResource *res, SSMAttributeID attrID,                                       SSMResourceAttrType attrType,                                      SSMAttributeValue *value);void SSMControlConnection_Invariant(SSMControlConnection *conn);SSMStatus SSMControlConnection_ProcessMessage(SSMControlConnection* control,                                              SECItem* msg);void SSM_WriteCtrlThread(void * arg);void SSM_FrontEndThread(void * arg);SSMStatus SSMControlConnection_Authenticate(SSMConnection *arg, char *nonce);void SSMControlConnection_CertLookUp(SSMControlConnection * connection,                                      void * arg, SSMResource ** res);SSMStatus SSMControlConnection_SendUIEvent(SSMControlConnection *conn,                                           char *command,                                           char *baseRef,                                            SSMResource *target, /* can pass NULL */                                           char *otherParams /* can pass NULL */,                                           CMTItem * clientContext /* can pass NULL */);/* * NOTES * These functions save the pref change properly in memory and in client file. * They check first whether the value has changed and perform saving * operations. * These functions do not belong to the prefs API because these specifically * send the changes to the plugin.  Once we have our own prefs library ready * and complete the migration, these functions should be called only when * application-specific prefs are saved back to client pref file. * Since these functions pack one item only, if you have to send a lot of * pref changes and performance is critical, it is not recommended to call * these functions repeatedly. * */SSMStatus SSMControlConnection_SaveStringPref(SSMControlConnection* ctrl,                                              char* key, char* value);SSMStatus SSMControlConnection_SaveBoolPref(SSMControlConnection* ctrl,                                            char* key, PRBool value);SSMStatus SSMControlConnection_SaveIntPref(SSMControlConnection* ctrl,                                           char* key, PRIntn value);void SSMControlConnection_CertLookUp(SSMControlConnection * connection,                                     void * arg, SSMResource ** res);void SSM_LockPasswdTable(SSMConnection * conn);SSMStatus SSM_UnlockPasswdTable(SSMConnection *conn);SSMStatus SSM_WaitPasswdTable(SSMConnection * conn);SSMStatus SSM_NotifyAllPasswdTable(SSMConnection * conn);SSMStatus SSMControlConnection_AddResource(SSMResource * res, SSMResourceID rid);SSMStatus SSMControlConnection_GetResource(SSMControlConnection * connection,                                          SSMResourceID rid,                                          SSMResource ** res);SSMStatus SSMControlConnection_GetGlobalResourceID(SSMControlConnection                                                  *connection,                                                  SSMResource * res,                                                  SSMResourceID * rid);SSMResourceID SSMControlConnection_GenerateResourceID(SSMControlConnection *conn);SSMStatus SSM_GetControlConnection(SSMResourceID rid,                                  SSMControlConnection **connection);SSMStatus SSMControlConnection_FormSubmitHandler(SSMResource* res,                                                 HTTPRequest* req);void SSMControlConnection_RecycleItem(SECItem* msg);SSMStatus SSMControlConnection_GenerateNonce(SSMControlConnection *conn);/* from processmsg.c */SSMStatus SSMControlConnection_ProcessVerifyCertRequest(SSMControlConnection * ctrl,                                               SECItem * msg);SSMStatusSSMControlConnection_ProcessImportCertRequest(SSMControlConnection * ctrl,                                              SECItem * msg);SSMStatusSSMControlConnection_ProcessConserveRequest(SSMControlConnection * ctrl,                                             SECItem * msg);SSMStatus SSMControlConnection_ProcessPickleRequest(SSMControlConnection * ctrl,                                           SECItem * msg);SSMStatus SSMControlConnection_ProcessUnpickleRequest(SSMControlConnection * ctrl,                                             SECItem * msg);SSMStatus SSMControlConnection_ProcessCertRequest(SSMControlConnection * ctrl,                                         SECItem * msg);PRStatusSSMControlConnection_ProcessKeygenTag(SSMControlConnection * ctrl,                                        SECItem * msg);SSMStatusSSMControlConnection_ProcessPKCS11Request(SSMControlConnection * ctrl, 					  SECItem * msg);SSMStatusSSMControlConnection_ProcessCRMFRequest(SSMControlConnection * ctrl,					SECItem * msg);SSMStatusSSMControlConnection_ProcessMiscRequest(SSMControlConnection * ctrl,                                        SECItem * msg);SSMStatusSSMControlConnection_ProcessFormSigningRequest(SSMControlConnection * ctrl,                                        SECItem *msg);SSMStatus SSMControlConnection_ProcessTLSRequest(SSMControlConnection * ctrl,                                        SECItem *msg);SSMStatusSSMControlConnection_ProcessSecCfgRequest(SSMControlConnection * ctrl,                                        SECItem *msg);SSMStatusSSMControlConnection_ProcessGenKeyOldStyleToken(SSMControlConnection * ctrl,                                        SECItem *msg);SSMStatusSSMControlConnection_ProcessGenKeyPassword(SSMControlConnection * ctrl, 					   SECItem *msg);SSMStatus SSM_CertCAImportCommandHandler2(HTTPRequest * req);voidssm_ShutdownNSS(SSMControlConnection *ctrl);SSMStatusSSM_UseAsDefaultEmailIfNoneSet(SSMControlConnection *ctrl,                                CERTCertificate *cert, PRBool onFrontEndThread);CERTCertList *SSMControlConnection_CreateCertListByNickname(SSMControlConnection * ctrl,                                              char * nick, PRBool email);SSMStatus ssmcontrolconnection_encode_err_reply(SECItem *msg, SSMStatus rv);SSMStatusssmcontrolconnection_send_message_to_client(SSMControlConnection *ctrl,                                            SECItem *msg);#endif /* __SSM_CTRLCONN_H__ */

⌨️ 快捷键说明

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