Movatterモバイル変換


[0]ホーム

URL:


Skip Navigation Links
Exit Print View
Link to oracle.comman pages section 5: Standards, Environments, and Macros    Oracle Solaris 11 Information Library
Oracle Technology Network
Library
PDF
Print View
Feedback
search filter icon
search icon
 Search Scope:

Document Information

Preface

Introduction

Standards, Environments, and Macros

acl(5)

ad(5)

advance(5)

adv_cap_1000fdx(5)

adv_cap_1000hdx(5)

adv_cap_100fdx(5)

adv_cap_100hdx(5)

adv_cap_10fdx(5)

adv_cap_10hdx(5)

adv_cap_asym_pause(5)

adv_cap_autoneg(5)

adv_cap_pause(5)

adv_rem_fault(5)

ANSI(5)

architecture(5)

ascii(5)

attributes(5)

audit_binfile(5)

audit_flags(5)

audit_remote(5)

audit_syslog(5)

availability(5)

brands(5)

C++(5)

C(5)

cancellation(5)

cap_1000fdx(5)

cap_1000hdx(5)

cap_100fdx(5)

cap_100hdx(5)

cap_10fdx(5)

cap_10hdx(5)

cap_asym_pause(5)

cap_autoneg(5)

cap_pause(5)

cap_rem_fault(5)

charmap(5)

compile(5)

condition(5)

crypt_bsdbf(5)

crypt_bsdmd5(5)

crypt_sha256(5)

crypt_sha512(5)

crypt_sunmd5(5)

crypt_unix(5)

CSI(5)

device_clean(5)

dhcp(5)

dhcp_modules(5)

environ(5)

eqnchar(5)

extendedFILE(5)

extensions(5)

filesystem(5)

fmri(5)

fnmatch(5)

formats(5)

fsattr(5)

grub(5)

gss_auth_rules(5)

hal(5)

iconv_1250(5)

iconv_1251(5)

iconv(5)

iconv_646(5)

iconv_852(5)

iconv_8859-1(5)

iconv_8859-2(5)

iconv_8859-5(5)

iconv_dhn(5)

iconv_koi8-r(5)

iconv_mac_cyr(5)

iconv_maz(5)

iconv_pc_cyr(5)

iconv_unicode(5)

ieee802.11(5)

ieee802.3(5)

ipfilter(5)

ipkg(5)

isalist(5)

ISO(5)

kerberos(5)

krb5_auth_rules(5)

krb5envvar(5)

KSSL(5)

kssl(5)

labels(5)

largefile(5)

ldap(5)

lf64(5)

lfcompile(5)

lfcompile64(5)

link_duplex(5)

link_rx_pause(5)

link_tx_pause(5)

link_up(5)

locale(5)

locale_alias(5)

lp_cap_1000fdx(5)

lp_cap_1000hdx(5)

lp_cap_100fdx(5)

lp_cap_100hdx(5)

lp_cap_10fdx(5)

lp_cap_10hdx(5)

lp_cap_asym_pause(5)

lp_cap_autoneg(5)

lp_cap_pause(5)

lp_rem_fault(5)

man(5)

mansun(5)

me(5)

mech_spnego(5)

mm(5)

ms(5)

MT-Level(5)

mutex(5)

MWAC(5)

mwac(5)

nfssec(5)

NIS+(5)

NIS(5)

nis(5)

nwam(5)

openssl(5)

pam_allow(5)

pam_authtok_check(5)

pam_authtok_get(5)

pam_authtok_store(5)

pam_deny(5)

pam_dhkeys(5)

pam_dial_auth(5)

pam_krb5(5)

pam_krb5_migrate(5)

pam_ldap(5)

pam_list(5)

pam_passwd_auth(5)

pam_pkcs11(5)

pam_rhosts_auth(5)

pam_roles(5)

pam_sample(5)

pam_smbfs_login(5)

pam_smb_passwd(5)

pam_tsol_account(5)

pam_unix_account(5)

pam_unix_auth(5)

pam_unix_cred(5)

pam_unix_session(5)

pam_zfs_key(5)

pkcs11_kernel(5)

pkcs11_kms(5)

pkcs11_softtoken(5)

pkcs11_tpm(5)

POSIX.1(5)

POSIX.2(5)

POSIX(5)

privileges(5)

prof(5)

pthreads(5)

RBAC(5)

rbac(5)

regex(5)

regexp(5)

resource_controls(5)

sgml(5)

smf(5)

smf_bootstrap(5)

smf_method(5)

smf_restarter(5)

smf_security(5)

smf_template(5)

solaris10(5)

solaris(5)

solbook(5)

stability(5)

standard(5)

standards(5)

step(5)

sticky(5)

SUS(5)

SUSv2(5)

SUSv3(5)

SVID3(5)

SVID(5)

tecla(5)

teclarc(5)

term(5)

threads(5)

trusted_extensions(5)

vgrindefs(5)

wbem(5)

xcvr_addr(5)

xcvr_id(5)

xcvr_inuse(5)

XNS4(5)

XNS(5)

XNS5(5)

XPG3(5)

XPG4(5)

XPG4v2(5)

XPG(5)

zones(5)

openssl

- OpenSSL cryptographic and Secure Sockets Layer toolkit

Description

OpenSSL is a cryptography toolkit that implements the Secure Sockets Layer (SSLv2/v3)and Transport Layer Security (TLS v1) network protocols.

The following features are omitted from the binaries for issues including but not limited to patents, trademark, and USexport restrictions: ECC, IDEA, MDC2, RC3, RC5, 4758_CCA Engine, AEP Engine,Atalla Engine, CHIL Engine, CSWIFT Engine, GMP Engine, NURON Engine, PadLock Engine, Sureware Engine, and UBSEC Engine.

The PKCS#11 Engine

A new PKCS#11 engine has been included with ENGINE namepkcs11. Theengine was developed in Sun and is not integrated in the OpenSSLproject.

The PKCS#11 engine is configured to use the Oracle Solaris Cryptographic Framework.Seecryptoadm(1M) for configuration information.

The PKCS#11 engine can support the following set of mechanisms:CKM_AES_CBC,CKM_AES_ECB,CKM_BLOWFISH_CBC,CKM_DES_CBC,CKM_DES_ECB,CKM_DES3_CBC,CKM_DES3_ECB,CKM_DSA,CKM_MD5,CKM_RC4,CKM_RSA_PKCS,CKM_RSA_X_509,CKM_SHA_1,CKM_SHA224,CKM_SHA256,CKM_SHA384, andCKM_SHA512.

The set of mechanisms available depends on installed Crypto Framework providers. Tosee what mechanisms can be offloaded to the Cryptographic Framework through thePKCS#11 engine on a given machine, run the following command:

/usr/sfw/bin/openssl engine pkcs11 -vvv -t -c

Due to requirements of the PKCS#11 standard regardingfork(2) behavior, some applicationsthat use the OpenSSL EVP interfaces andfork() with activecrypto contexts mightexperience unexpected behavior.

The Dynamic Engine Support

The dynamic engine support has been enabled, which allows an external engine,in the form of a shared library, to be dynamically bound andused by an OpenSSL-based application.

Run the following command to see if the dynamic engine is supported:

$openssl engine dynamic(dynamic) Dynamic engine loading support

Thedevcrypto Engine

This engine is implemented as a separate shared library, and it canbe used by an OpenSSL application through the OpenSSL dynamic engine support. This engine was developed in Sun and is not integrated inthe OpenSSL project.

Files for thedevcrypto engine library are:

/lib/openssl/engines/libdevcrypto.so /lib/openssl/engines/64/libdevcrypto.so

Thedevcrypto engine accesses only the kernel hardware providers from the OracleSolaris Cryptographic Framework. To see the hardware provider information on a system,use thecryptoadm(1M) command.

Thedevcrypto engine supports the following set of mechanisms:CKM_AES_CBC,CKM_AES_CTR,CKM_AES_ECB,CKM_BLOWFISH_CBC,CKM_DES_CBC,CKM_DES_ECB,CKM_DES3_CBC,CKM_DES3_ECB, andCKM_RC4.

The set of mechanisms available depends on hardware providers installed and enabledin the Cryptographic Framework. To see what mechanisms are supported by thedevcrypto engine on a particular machine, run the following command:

$openssl engine dynamic -pre SO_PATH:/lib/openssl/engines/libdevcrypto.so\-pre LOAD -t -c

Using FIPS Mode

Currently a FIPS-140 certified mode is not available in Oracle Solaris.

Building an OpenSSL Application

To build an OpenSSL application, use the followingcc command line options:

cc [flag... ]file... -lcrypto -lssl [library... ]

Accessing RSA Keys in PKCS#11 Keystores

OpenSSL can access RSA keys in PKCS#11 keystores using the following functionsof the ENGINE API:

EVP_PKEY *ENGINE_load_private_key(ENGINE *e, const char *key_id, UI_METHOD *ui_method, void *callback_data)EVP_PKEY *ENGINE_load_public_key(ENGINE *e, const char *key_id, UI_METHOD *ui_method, void *callback_data)

key_id, formerly for filenames only, can be now also set to aPKCS#11 URI. TheEVP_PKEY structure is newly allocated and caller is responsible tofree the structure later. To avoid clashes with existing filenames,file:// prefix forfilenames is now also accepted but only when the PKCS#11 engine isin use. The PKCS#11 URI specification follows:

pkcs11:[token=<label>][:manuf=<label>][;serial=<label>]   [;model=<label>][;object=<label>]   [;objecttype=(public|private|cert)]   [;passphrasedialog=(builtin|exec:<file>)]

The ordering of keywords is not significant. The PKCS#11 engine uses thekeystore for the slot chosen for public key operations, which ismetasloton a standard configured machine. Currently, the PKCS#11 engine ignores theobjecttypekeyword. The only mandatory keyword isobject which is the key object label.For information on how to use a different, possibly hardware, keystore withmetaslot, seelibpkcs11(3LIB).

The token PIN is provided by way of thepassphrasedialog keyword andis either read from the terminal (builtin) or from the output ofan external command (exec:<file>). The PIN is used to log into thetoken and by default is deleted from the memory then. The keywordpinis intentionally not provided due to inherent security problems of possible useof a password in the process arguments.

Due to fork safety issues the application must re-login if the childcontinues to use the PKCS#11 engine. It is done inside of theengine automatically if fork is detected and in that case,exec:<file> optionof thepassphrasedialog keyword can be used. Alternatively, an environment variableOPENSSL_PKCS11_PIN_CACHING_POLICY canbe used to allow the PIN to be cached in memory andreused in the child. It can be set tonone which isthe default,memory to store the PIN in memory, andmlocked-memory tokeep the PIN in a locked page usingmlock(3C).PRIV_PROC_LOCK_MEMORY privilege isrequired in that case.

Sensitive parts of private keys are never read from the token tothe process memory no matter whether the key is tagged with sensitiveflag or not. The PKCS#11 engine uses the public components as asearch key to get a PKCS#11 object handle to the private key.

To use the RSA keys by reference, high level API functions suchasRSA_public_decrypt(),EVP_PKEY_set1_RSA(), orEVP_SignInit() must be used. Low level functions mightgo around the engine and fail to make use of the feature.

Additional Documentation

Extensive additional documentation for OpenSSL modules is available in the/usr/share/man/man1openssl,/usr/share/man/man3openssl,/usr/share/man/man5openssl, and/usr/share/man/man7openssl directories.

To view the license terms, attribution, and copyright for OpenSSL, runpkg info --license library/security/openssl.

Examples

Example 1 Generating and Printing a Public Key

The following example generates and prints a public key stored in analready initilized PKCS#11 keystore. Notice the use of-engine pkcs11 and-inform e.

$ pktool gencert keystore=pkcs11 label=mykey \   subject="CN=test" keytype=rsa keylen=1024 serial=01$ openssl rsa -in "pkcs11:object=mykey;passphrasedialog=builtin"\   -pubout -text -engine pkcs11 -inform e

Attributes

Seeattributes(5) for a description of the following attributes:

ATTRIBUTE TYPE
ATTRIBUTE VALUE
Availability
library/security/openssl, library/security/openssl
InterfaceStability
Volatile

See Also

crle(1),cryptoadm(1M),libpkcs11(3LIB),attributes(5),privileges(5)

/usr/share/man/man1openssl/openssl.1openssl,/usr/share/man/man1openssl/CRYPTO_num_locks.3openssl,/usr/share/man/man3openssl/engine.3,/usr/share/man/man3openssl/evp.3

Copyright © 2011, Oracle and/or its affiliates. All rights reserved.Legal Notices
PreviousNext

[8]ページ先頭

©2009-2025 Movatter.jp