Security Builder. Certicom Corp. Security Builder Government Solutions Edition. Windows. FIPS 140-2 Non-Proprietary Security Policy.



Similar documents
Certicom Security for Government Suppliers developing client-side products to meet the US Government FIPS security requirement

Accellion Secure File Transfer Cryptographic Module Security Policy Document Version 1.0. Accellion, Inc.

FIPS Non- Proprietary Security Policy. McAfee SIEM Cryptographic Module, Version 1.0

SECUDE AG. FinallySecure Enterprise Cryptographic Module. FIPS Security Policy

Pulse Secure, LLC. January 9, 2015

FIPS Security Policy. for Motorola, Inc. Motorola Wireless Fusion on Windows CE Cryptographic Module

Secure Network Communications FIPS Non Proprietary Security Policy

Nortel Networks, Inc. VPN Client Software (Software Version: 7_11.101) FIPS Non-Proprietary Security Policy

SecureDoc Disk Encryption Cryptographic Engine

SkyRecon Cryptographic Module (SCM)

VASCO Data Security International, Inc. DIGIPASS GO-7. FIPS Non-Proprietary Cryptographic Module Security Policy

Northrop Grumman M5 Network Security SCS Linux Kernel Cryptographic Services. FIPS Security Policy Version

FIPS Security Policy LogRhythm Log Manager

OpenSSL FIPS Security Policy Version 1.2.4

FIPS Level 1 Security Policy for Cisco Secure ACS FIPS Module

FIPS Non-Proprietary Security Policy. IBM Internet Security Systems SiteProtector Cryptographic Module (Version 1.0)

Symantec Corporation Symantec Enterprise Vault Cryptographic Module Software Version:

Secure File Transfer Appliance Security Policy Document Version 1.9. Accellion, Inc.

Security Policy. Trapeze Networks

Kaseya US Sales, LLC Virtual System Administrator Cryptographic Module Software Version: 1.0

FIPS Security Policy LogRhythm or Windows System Monitor Agent

RSA BSAFE. Crypto-C Micro Edition for MFP SW Platform (psos) Security Policy. Version , October 22, 2012

MOTOROLA ACCOMPLI 009 PERSONAL COMMUNICATOR MODULE OVERVIEW SCOPE OF DOCUMENT. Security Policy REV 1.2, 10/2002

Symantec Mobility: Suite Server Cryptographic Module

Windows Server 2008 R2 Boot Manager Security Policy For FIPS Validation

VMware, Inc. VMware Java JCE (Java Cryptographic Extension) Module

SECURE USB FLASH DRIVE. Non-Proprietary Security Policy

13135 Lee Jackson Memorial Hwy., Suite 220 Fairfax, VA United States of America

FIPS Non Proprietary Security Policy: IBM Internet Security Systems Proventia GX Series Security

FIPS Security Policy 3Com Embedded Firewall PCI Cards

MOTOROLA MESSAGING SERVER SERVER AND MOTOROLA MYMAIL DESKTOP PLUS MODULE OVERVIEW. Security Policy REV 1.3, 10/2002

FIPS SECURITY POLICY FOR

OpenSSL FIPS Security Policy Version 1.2.3

Security Policy, DLP Cinema, Series 2 Enigma Link Decryptor

FIPS Non Proprietary Security Policy: Kingston Technology DataTraveler DT4000 Series USB Flash Drive

SNAPcell Security Policy Document Version 1.7. Snapshield

FIPS Documentation: Security Policy 05/06/ :21 AM. Windows CE and Windows Mobile Operating System. Abstract

OpenSSL FIPS Security Policy Version 1.2.2

Security Policy for Oracle Advanced Security Option Cryptographic Module

Security Policy for FIPS Validation

Non-Proprietary Security Policy for the FIPS Level 1 Validated Fortress Secure Client Software Version 3.1

Network Security Services (NSS) Cryptographic Module Version

FIPS Non Proprietary Security Policy: IBM Internet Security Systems Proventia GX Series Security

JUNOS-FIPS-L2 Cryptographic Module Security Policy Document Version 1.3

Security Policy Revision Date: 23 April 2009

Security Policy: Key Management Facility Crypto Card (KMF CC)

Safeguarding Data Using Encryption. Matthew Scholl & Andrew Regenscheid Computer Security Division, ITL, NIST

HP LTO-6 Tape Drive Level 1 Security Policy

Windows Server 2003 Enhanced Cryptographic Provider (RSAENH)

Windows Server 2003 Enhanced Cryptographic Provider (RSAENH)

FIPS Security Policy

NitroGuard Intrusion Prevention System Version and Security Policy

Alliance Key Manager Solution Brief

Citrix MetaFrame XP Security Standards and Deployment Scenarios

2014 IBM Corporation

FIPS Security Policy

7906G, 7911G, 7931G, 7941G, 7942G, 7945G, 7961G, 7961GE, 7962G, 7965G, 7970G, 7971G, 7971GE,

Computer Security: Principles and Practice

Security Technical. Overview. BlackBerry Enterprise Service 10. BlackBerry Device Service Solution Version: 10.2

Mobile Devices and Systems Lesson 02 Handheld Pocket Computers and Mobile System Operating Systems

WebSphere DataPower Release FIPS and NIST SP a support.

Key & Data Storage on Mobile Devices

IT Networks & Security CERT Luncheon Series: Cryptography

1C - FIPS Cisco VPN Client Security Policy

Chapter 11 Security+ Guide to Network Security Fundamentals, Third Edition Basic Cryptography

Using BroadSAFE TM Technology 07/18/05

FIPS Non-Proprietary Security Policy. FIPS Security Level: 2 Document Version: 0.9

Windows 7 BitLocker Drive Encryption Security Policy For FIPS Validation

TABLE OF CONTENTS NETWORK SECURITY 2...1

User Guide. FIPS Mode. For use with epolicy Orchestrator 4.6.x Software

Secure Computing Corporation Secure Firewall (Sidewinder) 2150E (Hardware Version: 2150 with SecureOS v )

Introducing etoken. What is etoken?

National Security Agency Perspective on Key Management

SUSE Linux Enterprise 12 Security Certifications Common Criteria, EAL, FIPS, PCI DSS,... What's All This About?

C O M P U T E R S E C U R I T Y

McAfee Firewall Enterprise 8.3.1

YubiKey Integration for Full Disk Encryption

HEWLETT PACKARD TIPPINGPOINT. FIPS NON PROPRIETARY SECURITY POLICY HP TippingPoint Security Management System

A+ Guide to Managing and Maintaining Your PC, 7e. Chapter 1 Introducing Hardware

IoT Security Concerns and Renesas Synergy Solutions

OMAP platform security features

EAC Decision on Request for Interpretation (Operating System Configuration)

Lecture 9: Application of Cryptography

Introduction...3 Terms in this Document...3 Conditions for Secure Operation...3 Requirements...3 Key Generation Requirements...

Athena Smartcard Inc. IDProtect Key with LASER PKI FIPS Cryptographic Module Security Policy. Document Version: 1.0 Date: April 25, 2012

McAfee Firewall Enterprise 8.2.1

Odyssey Access Client FIPS Edition

Overview. SSL Cryptography Overview CHAPTER 1

ERserver. iseries. Secure Sockets Layer (SSL)

A COMPARISON OF THE SECURITY REQUIREMENTS FOR CRYPTOGRAPHIC MODULES IN FIPS AND FIPS 140-2

Cryptographic and Security Testing Laboratory. Deputy Laboratory Director, CST Laboratory Manager

OpenADR 2.0 Security. Jim Zuber, CTO QualityLogic, Inc.

An Introduction to Cryptography as Applied to the Smart Grid

ERserver. iseries. Securing applications with SSL

PC Business Banking. Technical Requirements

MatrixSSL Developer s Guide

Complying with PCI Data Security

TANDBERG MXP Codec (Firmware Version: F6.0) FIPS Non-Proprietary Security Policy

Transcription:

Security Builder Certicom Corp. Security Builder Government Solutions Edition Windows FIPS 140-2 Non-Proprietary Security Policy May 28, 2002 Copyright 2002 Certicom Corp. This document may be freely reproduced and distributed whole and intact including this Copyright Notice.

Contents 1. Introduction 3 1.1 Purpose... 3 1.2 References... 3 2. Certicom s Security Builder Products 3 2.1 Security Builder Government Solutions Edition 1.0 (C Module)... 4 Cryptographic Module, Specification, Parts and Interfaces... 4 2.1.2 Processor Interfaces... 4 2.2 Module Interfaces... 5 2.3 Roles and Services... 7 2.3.1 The Crypto Officer Role... 7 2.3.2 The User Role... 7 2.3.3 Approved Mode of Operation... 7 2.3.4 Finite State Model... 7 2.3.5 Physical Security... 8 2.3.6 Operational Environment... 8 2.4 Cryptographic Key Management... 8 2.4.1 Key Generation... 8 2.4.2 Key Storage... 8 2.4.3 Zeroization of Keys... 9 2.4.4 Protection of Keys... 9 2.4.5 Cryptographic Algorithms... 9 2.4.6 Secure Operation... 9 2.5 Self Tests... 9 2.5.1 Startup Self Tests... 9 2.5.2 On-Demand Self Tests... 9 2.5.3 Continuous Self Tests... 10 3. Design Assurance10 3.1 Delivery and Operation... 10 3.2 Development... 10 3.3 Guidance Documents... 10 3.4 Mitigation of Other Attacks... 10 2

1. Introduction 1.1 Purpose This is a non-proprietary Federal Information Processing Standard (FIPS) 140-2 Security Policy for Certicom's Security Builder Government Solutions Edition 1.0 (C Module), or GSE (SBGSE). The SBGSE is based upon Security Builder 3.1. This Security Policy outlines Security Builder's SBGSE conformance to FIPS 140-2 Level 1 Security Requirements for Cryptographic Modules, and describes how to configure and operate the Security Builder cryptographic module in order to comply with this standard. 1.2 References For more information on the FIPS 140 standards and the validation program, please visit the NIST Web site at http://csrc.nist.gov/cryptval. For more information on Certicom, Security Builder Government Solutions Edition, and other Certicom products deploying the FIPS validated cryptographic module, please visit Certicom s web site at http://www.certicom.com. 2. Certicom s Security Builder Products Certicom is the industry leader in implementing public key technologies, providing the smallest and fastest solutions for strong security. The Security Builder line of products provides a complete suite of cryptographic algorithms for developers to easily integrate encryption, digital signatures, and other security mechanisms into applications. It is unique in its ability to bring strong security to a full range of computing platforms, from servers and desktops to the new class of handheld and wireless information appliances. Powered by highly efficient Elliptic Curve Cryptography (ECC) and designed for the demanding requirements of constrained devices as well as offering RSA and many other ciphers, Security Builder gives developers the security edge needed in today s wired and wireless world. The uniform code-base SB C Product (C++ compatible) is available in optimized form for many popular embedded and server platforms, including: AI-32 RimOS (386) AI-64 Solaris (x86) ARM7TDMI ADS 1.0.1 Compiler Solaris (SPARC) 32-bit ARM7TDMI SDT 2.5 Compiler Solaris (UltraSPARC II) 64-bit FreeBSD 3.2 (x86) Tru64 HPU-32 Win32 (x86) HPU-64 Win32 (x86) - Watcom Linux (x86) WinCE 3.0 PocketPC (SA1110) Linux (SA1110 ipaq) WinCE 3.0 PocketPC SH3 Mac OS 9 (Motorola 680x0) WinCE 3.0 PocketPC MIPS Mac OS 9 (PowerPC) WinCE 3.0 PocketPC (x86 emu) MCORE 340 (Diab 4.3f) VxWorks 5.4 (386) MCORE 330 (Diab 4.4a) VxWorks 5.4 (486) PalmOS (68K) VxWorks 5.4 (Pentium) 3

The Security Builder line of products is available in both Java and C versions to allow easy and rapid deployment of security services into any application. All Security Builder products have a concise and intuitive API, combined with a consistent code base for desktop and wireless applications, dramatically reducing time-to-market and providing interoperable end-to-end security. The Security Builder line of products provides the cryptography for a variety of Certicom products, including moviancrypt, movianvpn, SSL Plus, WTLS Plus, Trustpoint, PKI products and toolkits as well as MobileTrust CA services and certificates. 2.1 Security Builder Government Solutions Edition 1.0 (C Module) Cryptographic Module, Specification, Parts and Interfaces This Security Policy is for the SBGSE C Module product. The SBGSE C Module is a single product that is suitable for both embedded and desktop applications and implements DES, TDES, SHA-1 and AES FIPS approved algorithms and HMAC, MD5 in non-fips mode. The SBGSE C Module is validated against FIPS 140-2 Level 1 for two representative C Modules: Pocket PC, (representative embedded platforms) and Windows 98 (representative server platform). The SBGSE C Module is supplied in the form of shared libraries. The SBGSE C Module is a multi-chip stand-alone module as classified by FIPS 140-2. The cryptographic boundary for the Windows 98 platform is an IBM-compatible PC, running the Windows 98 operating system, and the SBGSE FIPS 140-2 Level 1-certified Win-32 module. The cryptographic boundary for the Pocket PC platform is a WinCE 3.0 compatible PDA running version 3.0 of the operating system on the Strong ARM processor and the SBGSE C Module. The SBGSE C Module can run on all of these platforms, has been validated, and meets all FIPS 140-2 Level 1 physical security and operating system specifications. 2.1.2 Processor Interfaces Windows 98 (and compatible operating systems) The processor performs all major services (see Table 1). The software for these services is located in the main memory (on the motherboard). This same memory also contains the data. The processor interfaces with: 1) the graphical display 2) the keyboard and pointing device 3) the hard disk (or disks) 4) the floppy disk drive 5) the expansion bus 6) the peripheral device (serial and parallel) ports WinCE 3.0 (and compatible operating systems) 4

The processor performs all major services (see Table 1). The software for these services resides on the internal flash/ram memory (on the main board). This same memory contains the data. The processor interfaces with: 1) the user keys and point device 2) the expansion slot 3) the serial port 2.2 Module Interfaces The SBGSE C Module interface, as a multi-chip stand-alone module, consists of the following devices: For Windows 98: Windows 98 I/O Devices - Video - Keyboard - Pointing Device Pentium Processor Cryptographic operations are performed by the processor All of the module information flows between the processor and memory Memory Keys and program data are stored in the memory Hard Drive Floppy Drive PCI bus Power Supply Figure 1 Cryptographic Boundary Data Input: The Hard Drive, Floppy Drive and PCI bus are used by the operation system to load the SBGSE C Module into Memory (Activate). Power Input: The Power Supply is the power interface. Control Input The Keyboard and Pointing Device are used in installation of the SBGSE C Module. Status Output: The Video I/O device displays the status the SBGSE C Module. 5

For WinCE 3.0: WinCE 3.0 and compatible operating systems - Touch Screen - Serial Port/USB StrongARM Processor Cryptographic operations are performed by the processor All of the module information flows between the processor and memory Memory Keys and program data are stored in the memory Expansion Slot Battery & Charging System Figure 2 Cryptographic Boundary Data Input: The Serial Port or the Expansion Slot is used to load the SBGSE C Module onto the WinCE device. Power Input: The Battery and Charging System is the power interface. Control Input and Status Output: The Touch Screen is used as a Control Input in the installation of the SBGSE C Module. The Touch Screen is also used to display the status of the SBGSE C Module. To install the SBGSE C Module on the WinCE Pocket PC device, the active sync facility is utilized (see the Crypto Officer Manual). Once the installation files are on the device, it is to be disconnected from the host PC and the remainder of the installation completed. 6

The interface into the SBGSE C Module is via API function calls. These function calls provide the interface to the cryptographic services for which the parameters and return codes, provide the input/output data and status conditions. The API function calls can be used to provide SBGSE customers with FIPS 140-2 Level 1 validated cryptographic services. 2.3 Roles and Services SBGSE C Module provides Crypto Officer and User Roles, meeting FIPS 140-2 Level 1 requirements. These roles are enforced by the module itself and not by an external policy. 2.3.1 The Crypto Officer Role The Crypto Officer has the responsibility for installing the SBGSE C Module. The Crypto Officer is responsible for handling key generation and other CSP s (see Table 2). The Crypto Officer s role calls Crypto Officer API functions putting the module into Crypto Officer State to perform these operations. 2.3.2 The User Role The User of the cryptographic module may call all SBGSE C Module API functions which provide cryptographic functions (see Table 2). In order to operate the module securely, it is the User's responsibility to confine calls to those methods that have been FIPS 140-2 validated (see Table 1). The modules enter the Crypto User State to operate the Crypto User functions. 2.3.3 Approved Mode of Operation In the approved mode of operation, all Roles shall confine themselves to calling FIPS 140-2-approved algorithms, as marked in Table 1. 2.3.4 Finite State Model A finite state model is provided as a separate document for FIPS validation. In summary, the Finite State machine contains the following states: Initial Installed Self-Test Module Active Crypto Officer Crypto User Soft Error Hard Error Disabled 7

The Initial State does not contain the crypto module. The Officer installs the module, transiting to Installed. On power up, the module enters Self-Test (automatically). On success the module enters Module Active; on failure the module enters Disabled. From the Disabled State the Crypto Officer would have to re-install to attempt correction. From the Module Active State (which is only entered if self-tests have succeeded), the module can transit to the Crypto User State when a user level API function is called and to the Crypto Officer State when a Crypto Officer level API function is called (See Table 3). Currently (for all Level 1 certification) no authentication of roles is implemented. When the Crypto function has completed successfully, the state transits back to Module Active. If the RNG continuous test fails, the State transits to Hand Error and then to Disabled. If there is an error with the user parameters, an error return code is returned (the Soft Error state) and the module then transits back to Module Active without completing any operation. The User has the opportunity of correcting his input, based upon the error return code (Soft Error) and may call the function again. 2.3.5 Physical Security The multi-chip stand-alone module embodies a commercial production quality computing system with commercial production quality cases. 2.3.6 Operational Environment This module is to be run in single user mode on Windows 98 or Windows CE, therefore the module is restricted to single operator mode operation by the operating system. 2.4 Cryptographic Key Management The SBGSE C Module provides the underlying primitives to support FIPS 140-2 Level 1 key management. The user will select FIPS 140-2 approved algorithms and will handle keys with appropriate care to build up a system that complies with FIPS 140-2. It is the Crypto Officer s responsibility to select FIPS 140-2 validated algorithms (see Table 1). In order to securely operate this cryptographic module, a Crypto Officer must ensure that keying material is handled in accordance with FIPS 140-2. They must also ensure that the memory used to store these keys is properly zeroized after use. 2.4.1 Key Generation The SBGSE C Module provides FIPS 140-2 compliant key generation. The underlying random number generation uses a FIPS 140-2-approved method, the 9.62 RNG. 2.4.2 Key Storage The SBGSE C Module is a low-level cryptographic toolkit, and as such does not provide long-term key storage. The module also does not have any provision for input/output of keys or seeds outside the crypto boundary. The module does provide FIPS 140-2-approved algorithms which can be used to encrypt/decrypt keys for storage or input/output in the application employing the cryptographic module. 8

It is the Crypto Officer s responsibility to store, zeroize, and otherwise handle keying information in accordance with FIPS 140-2. The module contains, in the code space, a hard-coded HMAC-SHA-1 key value, which is used to calculate the HMAC-SHA-1 tag used for the integrity testing. This hard-coded key has been produced with the ANSI 9.62 RNG in FIPS mode. The HMAC-SHA-1 key can be destroyed by formatting the drive. 2.4.3 Zeroization of Keys The SBGSE C Module primitives zeroize all intermediate key-derived material. Actual key values are contained in memory inside the crypto boundary. The test functions in the SBGSE C Module zeroize all key material after user (employing the native key Destroy functions), as should the Crypto Officer employing the SBGSE C Module. 2.4.4 Protection of Keys The test functions provided with the SBGSE C Module zeroize all keying material after use. This, combined with the zeroization of intermediate key-derived material inside the module, protects the keys when the OS is in single user mode (as is required by this validation). In order to comply with FIPS 140-2 guidelines, the user of this module must also take care to safeguard access to the keying information and zeroize it after use. The HMAC tag, located in the registry, is zeroized (over-written with 0 bytes) by the module upon hard error. 2.4.5 Cryptographic Algorithms The SBGSE C Module supports many cryptographic algorithms. The RNG, DES (DES is provided for legacy use), TDES, SHA-1, and AES algorithms have been validated to comply with FIPS. The set of cryptographic algorithms supported by the SBGSE C Module are given in Table 1. 2.4.6 Secure Operation In order to operate the module in compliance with FIPS, only the FIPS approved and tested algorithms should be used. These algorithms are RNG, SHA-1, DES, TDES (DES is provided for legacy use), and AES (see Table 1). These critical functions are all subjected to power-up tests specified in the next section. 2.5 Self Tests 2.5.1 Startup Self Tests Self-tests are initiated automatically by the module at start-up. Start-up tests include software integrity tests and known answer tests for the tested algorithms. Self-tests (KATs) are performed on DES, TDES (DES is provided for legacy use), AES, and SHA-1. Failure of the self-test places the cryptographic module in the Hard Error State, wherein no cryptographic operations can be performed. (The module is disabled.) If any self-test fails, the cryptographic module will output an error output and transitions to a disabled state. 2.5.2 On-Demand Self Tests On-demand self tests may be invoked by the Cryptographic Officer by invoking an executable, which is described in the Crypto Officer & User Manual. 9

2.5.3 Continuous Self Tests The RNG performs continuous self-tests of all RNG generated data, examining the first 160 bits of each requested random generation for repetition. This ensures that the RNG is not stuck at any constant value. 3. Design Assurance A configuration management system for the cryptographic module is employed and has been described in a document to the certifying lab. It uses the concurrent versioning system (CVS) to track the configurations. 3.1 Delivery and Operation Please refer to the Crypto Officers Manual, Section 2.2.1 to review the steps necessary for the secure installation, initialization and start-up of the cryptographic module. 3.2 Development Detailed design information and procedures have been described in documentation submitted to the certifying lab. Development for the crypto module is carried out in a multi-platform environment. We are using the CVS revision control system to control revisions. Development of new versions and major features are performed on a branch of the software, and these branches merged back into the trunk after testing and review, but the branch is maintained to perform post-release maintenance. Releases are tested first in engineering (via an automated daily procedure, the daily build). They are then committed to the product candidate repository. These releases are then sent to the QA department which must run its own tests before they move them into the product branch. Only QA can move candidates into products. Daily the software is built automatically on 30 platforms (servers to embedded devices and PDA's) and the regression tests run. In addition to this, daily integration builds are performed to check the use of the cryptographic library as used in the higher level protocol products. Weekly, code test coverage and code quality tools (purify and insure) are run on the product (these are very extensive tests taking longer than a day to complete). Weekly benchmarks are also automatically performed on a representative subset of devices. 3.3 Guidance Documents The Crypto Officers Manual, User Guide and the Programmer's Reference Manual (both made available to the Crypto Officer) outline the functions, security events and security parameters. 3.4 Mitigation of Other Attacks This Crypto Module is not designed for the mitigation of any other attacks. 10

Table 1 Type Algorithm FIPS 140-2 Level 1 Validation Hash Functions: SHA-1 [FIPS 180-1, http://www.itl.nist.gov/fipspubs/fip180-1.htm] MD5 [RFC: 1321, http://www.ietf.org/rfc/rfc1321.txt] Message HMAC (Message Authentication Codes) [FIPS 198, IEEE P1363, Authentication: http://grouper.ieee.org/groups/1363/] RNG (Random ANSI 9.62 Random Number Generation [ANSI 9.62] Number Generation): Block Ciphers: DES [FIPS 46-2, http://www.itl.nist.gov/fipspubs/fip46-2.htm] (for legacy systems) TDES [FIPS 46-3, http://www.itl.nist.gov/fipspubs/fip46-3.htm] DES AES [FIPS 197, http://csrc.nist.gov/encryption/aes/] Table 2 Roles and Functionality Services Available to: Crypto Officer User ANSI 9.62 seeding use DES (for legacy) keying encrypt/decrypt AES keying encrypt/decrypt SHA -1 Hashing MD5 Hashing HMAC Table 3 Roles and API Calls Services Available to: Crypto Officer User ANSI 9.62 RNG sb_ansirngcreate sb_ansirngdestroy sb_fips140ansirngcreate sb_fips140ansirngdestroy sb_rngreseed sb_rnggetbytes 11

DES Symmetric Encryption and Decryption (for legacy systems) sb_desparamscreate sb_desparamsget sb_desparamsdestroy sb_deskeycreate sb_deskeyget sb_deskeydestroy sb_desbegin sb_desencrypt sb_desdecrypt sb_desend AES Symmetric Encryption and Decryption sb_aesparamscreate sb_aesparamsget sb_aesparamsdestroy sb_aesencryptkeycreate sb_aesdecryptkeycreate sb_aeskeycreate sb_aeskeyget sb_aeskeydestroy sb_aesbegin sb_aesencryptbegin sb_aesdecryptbegin sb_aesencrypt sb_aesdecrypt sb_aesend SHA -1 Hashing sb_sha1begin sb_sha1hash sb_sha1end SB_SHA1CtxDuplicate MD5 Hashing sb_md5begin sb_md5hash sb_md5end sb_md5ctxduplicate HMAC sb_hmacsha1begin sb_hmacsha1hash sb_hmacsha1end sb_hmacmd5begin sb_hmacmd5hash sb_hmacmd5end 12