1// Copyright (c) 2012 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5// This file is only included in ssl_client_socket_nss.cc and 6// ssl_server_socket_nss.cc to share common functions of NSS. 7 8#ifndef NET_SOCKET_NSS_SSL_UTIL_H_ 9#define NET_SOCKET_NSS_SSL_UTIL_H_ 10 11#include <prerror.h> 12#include <prio.h> 13 14#include "net/base/net_export.h" 15#include "net/base/net_log.h" 16 17namespace net { 18 19class BoundNetLog; 20 21// Initalize NSS SSL library. 22NET_EXPORT void EnsureNSSSSLInit(); 23 24// Log a failed NSS funcion call. 25void LogFailedNSSFunction(const BoundNetLog& net_log, 26 const char* function, 27 const char* param); 28 29// Map network error code to NSS error code. 30PRErrorCode MapErrorToNSS(int result); 31 32// GetNSSModelSocket returns either NULL, or an NSS socket that can be passed 33// to |SSL_ImportFD| in order to inherit some default options. 34PRFileDesc* GetNSSModelSocket(); 35 36// Map NSS error code to network error code. 37int MapNSSError(PRErrorCode err); 38 39// Creates a NetLog callback for an SSL error. 40NetLog::ParametersCallback CreateNetLogSSLErrorCallback(int net_error, 41 int ssl_lib_error); 42 43 44} // namespace net 45 46#endif // NET_SOCKET_NSS_SSL_UTIL_H_ 47