ManagedOpenSsl
Base class for all openssl wrapped objects.
Contains the raw unmanaged pointer and has a Handle property to get access to it.
Also overloads the ToString() method with a BIO print.
Constructor which takes the raw unmanged pointer.
This is the only way to construct this object and all dervied types.
This finalizer just calls Dispose().
This method is used by the ToString() implementation. A great number of
openssl objects support printing, so this is a conveinence method.
Dervied types should override this method and not ToString().
The BIO stream object to print into
Override of ToString() which uses Print() into a BIO memory buffer.
This method must be implemented in derived classes.
Do nothing in the base class.
Implementation of the IDisposable interface.
If the native pointer is not null, we haven't been disposed, and we are the owner,
then call the virtual OnDispose() method.
Throws NotImplementedException
Raw unmanaged pointer
If this object is the owner, then call the appropriate native free function.
This is to prevent double-deletion issues.
gets/sets whether the object owns the Native pointer
Access to the raw unmanaged pointer.
Wraps ASN1_STRING_*
Helper base class that handles the AddRef() method by using a _dup() method.
Derived classes must use a _dup() method to make a copy of the underlying native data structure.
Calls ASN1_STRING_type_new()
Wrap existing native pointer
Calls ASN1_STRING_set()
Calls ASN1_STRING_free()
Returns ASN1_STRING_cmp()
Returns ASN1_STRING_length()
Returns ASN1_STRING_data()
Helper type that handles the AddRef() method.
Derived classes must implement the LockType
and RawReferenceType
properties
Prints the current underlying reference count
Derived classes must return a CryptoLockTypes
for this type
Derived classes must return a Type
that matches the underlying type
Implements the CopyRef() method
Encapsulates the BIO_* functions.
Calls BIO_new_mem_buf() from the specified buffer.
Calls BIO_new_mem_buf() from the specified string.
Calls BIO_new(BIO_s_mem())
Factory method that calls BIO_new() with BIO_s_mem()
Factory method that calls BIO_new_file()
Factory method that calls BIO_new() with BIO_f_md()
Calls BIO_set_close()
Calls BIO_push()
Calls BIO_write()
Calls BIO_write()
Calls BIO_write()
Calls BIO_write()
Calls BIO_write()
Calls BIO_puts()
Calls BIO_read()
Calls BIO_gets()
Returns the MessageDigestContext if this BIO's type if BIO_f_md()
Calls BIO_free()
Returns BIO_number_read()
Returns BIO_number_written()
Returns number of bytes buffered in the BIO - calls BIO_ctrl_pending
BIO Close Options
Don't close on free
Close on freee
V_CRYPTO_MDEBUG_*
V_CRYPTO_MDEBUG_TIME
V_CRYPTO_MDEBUG_THREAD
V_CRYPTO_MDEBUG_ALL
CRYPTO_MEM_CHECK_*
CRYPTO_MEM_CHECK_OFF
for applications
CRYPTO_MEM_CHECK_ON
for applications
CRYPTO_MEM_CHECK_ENABLE
for library-internal use
CRYPTO_MEM_CHECK_DISABLE
for library-internal use
Exposes the CRYPTO_* functions
Calls CRYPTO_malloc_debug_init()
Calls CRYPTO_dbg_set_options()
Calls CRYPTO_mem_ctrl()
Calls CRYPTO_cleanup_all_ex_data()
Calls ERR_remove_state()
Calls CRYPTO_mem_leaks_cb()
Returns MD2_options()
Returns RC4_options()
Returns DES_options()
Returns idea_options()
Returns BF_options()
CRYPTO_MEM_LEAK_CB
Useful for tracking down memory leaks
Begins memory tracking
Stops memory tracking and reports any leaks found since Start() was called.
Returns the number of bytes leaked between Start() and Finish()
Wraps the EVP_CIPHER object.
Prints the LongName of this cipher.
Not implemented, these objects should never be disposed
Returns EVP_get_cipherbyname()
EVP_enc_null()
EVP_des_ecb()
EVP_des_ede()
EVP_des_ede3()
EVP_des_ede_ecb()
EVP_des_ede3_ecb()
EVP_des_cfb64()
EVP_des_cfb1()
EVP_des_cfb8()
EVP_des_ede_cfb64()
EVP_des_ede3_cfb64()
EVP_des_ede3_cfb1()
EVP_des_ede3_cfb8()
EVP_des_ofb()
EVP_ded_ede_ofb()
EVP_des_ede3_ofb()
EVP_des_cbc()
EVP_des_ede_cbc()
EVP_des_ede3_cbc()
EVP_desx_cbc()
EVP_rc4()
EVP_rc4_40()
EVP_idea_ecb()
EVP_idea_cfb64()
EVP_idea_ofb()
EVP_idea_cbc()
EVP_rc2_ecb()
EVP_rc2_cbc()
EVP_rc2_40_cbc()
EVP_rc2_64_cbc()
EVP_rc2_cfb64()
EVP_rc2_ofb()
EVP_bf_ecb()
EVP_bf_cbc()
EVP_bf_cfb64()
EVP_bf_ofb()
EVP_cast5_ecb()
EVP_cast5_cbc()
EVP_cast5_cfb64()
EVP_cast5_ofb()
EVP_aes_128_ecb()
EVP_aes_128_cbc()
EVP_aes_128_cfb1()
EVP_aes_128_cfb8()
EVP_aes_128_cfb128()
EVP_aes_128_ofb()
EVP_aes_192_ecb()
EVP_aes_192_cbc()
EVP_aes_192_cfb1()
EVP_aes_192_cfb8()
EVP_aes_192_cfb128()
EVP_aes_192_ofb()
EVP_aes_256_ecb()
EVP_aes_256_cbc()
EVP_aes_256_cfb1()
EVP_aes_256_cfb8()
EVP_aes_256_cfb128()
EVP_aes_256_ofb()
Calls OBJ_NAME_do_all_sorted(OBJ_NAME_TYPE_CIPHER_METH)
Calls OBJ_NAME_do_all(OBJ_NAME_TYPE_CIPHER_METH)
Returns the key_len field
Returns the iv_len field
Returns the block_size field
Returns the flags field
Returns the long name for the nid field using OBJ_nid2ln()
Returns the name for the nid field using OBJ_nid2sn()
Returns EVP_CIPHER_type()
Returns the long name for the type using OBJ_nid2ln()
Simple struct to encapsulate common parameters for crypto functions
The key for a crypto operation
The IV (Initialization Vector)
The payload (contains plaintext or ciphertext)
Wraps the EVP_CIPHER_CTX object.
Calls OPENSSL_malloc() and initializes the buffer using EVP_CIPHER_CTX_init()
Returns the cipher's LongName
Calls EVP_OpenInit() and EVP_OpenFinal()
Calls EVP_SealInit() and EVP_SealFinal()
Encrypts or decrypts the specified payload.
Calls EVP_CipherInit_ex(), EVP_CipherUpdate(), and EVP_CipherFinal_ex()
Encrypts the specified plaintext
Decrypts the specified ciphertext
Encrypts the specified plaintext
Decrypts the specified ciphertext
Calls EVP_BytesToKey
Calls EVP_CIPHER_CTX_clean() and then OPENSSL_free()
Returns the EVP_CIPHER for this context.
Wraps X509V3_CTX
Calls OPENSSL_malloc()
Calls X509V3_set_ctx()
X509V3_set_ctx_nodb - sets the db pointer to NULL
Calls X509V3_set_nconf()
Calls OPENSSL_free()
Wraps the NCONF_* functions
Calls NCONF_new()
Calls NCONF_load()
Calls NCONF_load()
Creates a X509v3Context(), calls X509V3_set_ctx() on it, then calls
X509V3_EXT_add_nconf()
Calls NCONF_free()
Wraps the native OpenSSL EVP_PKEY object
Calls EVP_PKEY_new()
Calls PEM_read_bio_PUBKEY()
Calls PEM_read_bio_PUBKEY()
Calls PEM_read_bio_PUBKEY()
Calls PEM_read_bio_PrivateKey()
Calls PEM_read_bio_PrivateKey()
Calls PEM_read_bio_PrivateKey()
Calls EVP_PKEY_set1_DSA()
Calls EVP_PKEY_set1_RSA()
Calls EVP_PKEY_set1_DH()
Calls EVP_PKEY_assign()
Returns EVP_PKEY_get1_DSA()
Returns EVP_PKEY_get1_DH()
Returns EVP_PKEY_get1_RSA()
Calls PEM_write_bio_PKCS8PrivateKey
Calls PEM_write_bio_PKCS8PrivateKey
Calls EVP_PKEY_free()
Returns CompareTo(obj)
Calls appropriate Print() based on the type.
Returns EVP_PKEY_type()
Returns EVP_PKEY_bits()
Returns EVP_PKEY_size()
Set of types that this CryptoKey can be.
EVP_PKEY_RSA
EVP_PKEY_DSA
EVP_PKEY_DH
EVP_PKEY_EC
Encapsulates the native openssl Diffie-Hellman functions (DH_*)
Constant generator value of 2.
Constant generator value of 5.
Calls DH_generate_parameters()
Calls DH_generate_parameters_ex()
Calls DH_new().
Calls DH_new().
Calls DH_new().
Factory method that calls FromParametersPEM() to deserialize
a DH object from a PEM-formatted string.
Factory method that calls PEM_read_bio_DHparams() to deserialize
a DH object from a PEM-formatted string using the BIO interface.
Factory method that calls XXX() to deserialize
a DH object from a DER-formatted buffer using the BIO interface.
Calls DH_generate_key().
Calls DH_compute_key().
Calls PEM_write_bio_DHparams().
Calls ASN1_i2d_bio() with the i2d = i2d_DHparams().
Calls DHparams_print().
Calls DH_check().
Calls DH_free().
Accessor for the p value.
Accessor for the g value.
Accessor for the pub_key value.
Accessor for the priv_key value.
Creates a BIO.MemoryBuffer(), calls WriteParametersPEM() into this buffer,
then returns the buffer as a string.
Creates a BIO.MemoryBuffer(), calls WriteParametersDER() into this buffer,
then returns the buffer.
Sets or clears the FlagNoExpConstTime bit in the flags field.
Flags for the return value of DH_check().
Wraps the DSA_* functions
Calls DSA_new() then DSA_generate_parameters_ex()
Calls DSA_new() then DSA_generate_parameters_ex()
Calls DSA_new() then DSA_generate_parameters_ex()
Returns PEM_read_bio_DSA_PUBKEY()
Returns PEM_read_bio_DSA_PUBKEY()
Returns PEM_read_bio_DSAPrivateKey()
Returns PEM_read_bio_DSAPrivateKey()
Calls DSA_generate_key()
Returns DSA_sign()
Returns DSA_verify()
Calls PEM_write_bio_DSA_PUBKEY()
Calls PEM_write_bio_DSAPrivateKey()
Calls DSA_print()
Calls DSA_free()
If both objects have a private key, those are compared.
Otherwise just the params and public keys are compared.
Xor of the params, public key, and optionally the private key
Returns the p field
Returns the q field
Returns the g field
Returns DSA_size()
Returns the pub_key field
Returns the priv_key field
Returns the pub_key field as a PEM string
Returns the priv_key field as a PEM string
Returns the counter
Returns the h value
Accessor for the FlagNoExpConstTime flag
Wraps HMAC
Calls OPENSSL_malloc() and then HMAC_CTX_init()
Calls HMAC()
Calls HMAC_Init_ex()
Calls HMAC_Update()
Calls HMAC_Update()
Calls HMAC_Final()
Calls HMAC_CTX_cleanup() and then OPENSSL_free()
Simple encapsulation of a local identity.
This includes the private key and the X509Certificate.
Construct an Identity with a private key
Create a X509Request for this identity, using the specified name.
Create a X509Request for this identity, using the specified name and digest.
Verify that the specified chain can be trusted.
Returns the embedded public key of the X509Certificate
Returns the private key
Returns the X509Certificate
Wraps the EVP_MD object
Creates a EVP_MD struct
Prints MessageDigest
Not implemented, these objects should never be disposed.
Calls EVP_get_digestbyname()
EVP_md_null()
EVP_md4()
EVP_md5()
EVP_sha()
EVP_sha1()
EVP_sha224()
EVP_sha256()
EVP_sha384()
EVP_sha512()
EVP_dss()
EVP_dss1()
EVP_ripemd160()
EVP_ecdsa()
Calls OBJ_NAME_do_all_sorted(OBJ_NAME_TYPE_CIPHER_METH)
Calls OBJ_NAME_do_all(OBJ_NAME_TYPE_CIPHER_METH)
Returns the block_size field
Returns the md_size field
Returns the type field using OBJ_nid2ln()
Returns the type field using OBJ_nid2sn()
Wraps the EVP_MD_CTX object
Calls BIO_get_md_ctx() then BIO_get_md()
Calls EVP_MD_CTX_create() then EVP_MD_CTX_init()
Prints the long name
Calls EVP_DigestInit_ex(), EVP_DigestUpdate(), and EVP_DigestFinal_ex()
Calls EVP_DigestInit_ex()
Calls EVP_DigestUpdate()
Calls EVP_DigestFinal_ex()
Calls EVP_SignFinal()
Calls EVP_VerifyFinal()
Calls EVP_DigestInit_ex(), EVP_DigestUpdate(), and EVP_SignFinal()
Calls EVP_SignFinal()
Calls EVP_DigestInit_ex(), EVP_DigestUpdate(), and EVP_VerifyFinal()
Calls EVP_VerifyFinal()
Calls EVP_MD_CTX_cleanup() and EVP_MD_CTX_destroy()
static class for initialize OpenSSL/Crypto libraries for threading
Calls Native.InitializeThreads()
Calls Native.UninitializeThreads()
This is the low-level C-style interface to the crypto API.
Use this interface with caution.
This is the name of the DLL that P/Invoke loads and tries to bind all of
these native functions to.
#define OPENSSL_free(addr) CRYPTO_free(addr)
#define OPENSSL_malloc(num) CRYPTO_malloc((int)num,__FILE__,__LINE__)
#define SSL_CTX_ctrl in ssl.h - calls SSL_CTX_ctrl()
#define SSL_CTX_set_options in ssl.h - calls SSL_CTX_ctrl
#define SSL_CTX_get_mode in ssl.h - calls SSL_CTX_ctrl
#define SSL_CTX_get_options in ssl.h - calls SSL_CTX_ctrl
Int32 representation of options set in the context
To handle binary (in)compatibility
callback-specific data
This is a struct that contains a uint for the native openssl error code.
It provides helper methods to convert this error code into strings.
Constructs an OpenSslError object.
The native error code
Returns the native error code
Returns the result of ERR_lib_error_string()
Returns the results of ERR_reason_error_string()
Returns the results of ERR_func_error_string()
Returns the results of ERR_error_string_n()
Exception class to provide OpenSSL specific information when errors occur.
When this class is instantiated, GetErrorMessage() is called automatically.
This will call ERR_get_error() on the native openssl interface, once for every
error that is in the current context. The exception message is the concatination
of each of these errors turned into strings using ERR_error_string_n().
Returns the list of errors associated with this exception.
Callback prototype. Must return the password or prompt for one.
Simple password callback that returns the contained password.
Constructs a PasswordCallback
Suitable callback to be used as a PasswordHandler
Wraps PCKS12_*
Calls PKCS12_create()
Calls PKCS12_create() with more options
friendly name
How to encrypt the key
How to encrypt the certificate
# of iterations during encryption
Calls d2i_PKCS12_bio() and then PKCS12_parse()
Calls i2d_PKCS12_bio()
Calls PKCS12_free()
Returns the Certificate, with the PrivateKey attached if there is one.
Returns the PrivateKey
Returns a stack of CA Certificates
Password-Based Encryption (from PKCS #5)
NID_pbeWithMD2AndDES_CBC
NID_pbeWithMD5AndDES_CBC
NID_pbeWithMD2AndRC2_CBC
NID_pbeWithMD5AndRC2_CBC
NID_pbeWithSHA1AndDES_CBC
NID_pbeWithSHA1AndRC2_CBC
NID_pbe_WithSHA1And128BitRC4
NID_pbe_WithSHA1And40BitRC4
NID_pbe_WithSHA1And3_Key_TripleDES_CBC
NID_pbe_WithSHA1And2_Key_TripleDES_CBC
NID_pbe_WithSHA1And128BitRC2_CBC
NID_pbe_WithSHA1And40BitRC2_CBC
This is a non standard extension that is only currently interpreted by MSIE
omit the flag from the private key
the key can be used for signing only
the key can be used for signing and encryption
Wraps PKCS7
Calls d2i_PKCS7_bio()
Calls PEM_read_bio_PKCS7()
Calls PKCS7_free()
Extracts the X509Chain of certifcates from the internal PKCS7 structure
Exposes the RAND_* functions.
Calls RAND_seed()
Calls RAND_seed()
Calls RAND_pseudo_bytes()
Calls RAND_cleanup()
Calls RAND_bytes()
Calls RAND_add()
Calls RAND_load_file()
Calls RAND_write_file()
Calls RAND_file_name()
Calls RAND_query_egd_bytes()
Calls RAND_egd()
Calls RAND_egd_bytes()
Calls RAND_poll()
Calls BN_rand()
Returns RAND_status()
Wraps the RSA_* functions
Calls RSA_new()
Calls PEM_read_bio_RSA_PUBKEY()
Calls PEM_read_bio_RSAPrivateKey()
Calls PEM_read_bio_RSA_PUBKEY()
Calls PEM_read_bio_RSAPrivateKey()
Calls RSA_generate_key_ex()
Calls RSA_public_encrypt()
Calls RSA_private_encrypt()
Calls RSA_public_decrypt()
Calls RSA_private_decrypt()
Calls PEM_write_bio_RSA_PUBKEY()
Calls PEM_write_bio_RSAPrivateKey()
Returns RSA_check_key()
Calls RSA_print()
Calls RSA_free()
Returns RSA_size()
Not finished
Accessor for the e field
Accessor for the n field
Accessor for the d field
Accessor for the p field
Accessor for the q field
Accessor for the dmp1 field.
d mod (p-1)
Accessor for the dmq1 field.
d mod (q-1)
Accessor for the iqmp field.
q^-1 mod p
Returns the public key field as a PEM string
Returns the private key field as a PEM string
RSA padding scheme
RSA_PKCS1_PADDING
RSA_SSLV23_PADDING
RSA_NO_PADDING
RSA_PKCS1_OAEP_PADDING
Optimal Asymmetric Encryption Padding
RSA_X931_PADDING
Override to implement client/server specific handshake processing
Renegotiate session keys - calls SSL_renegotiate
Implments an AuthenticatedStream and is the main interface to the SSL library.
Create an SslStream based on an existing stream.
Create an SslStream based on an existing stream.
Create an SslStream based on an existing stream.
Create an SslStream based on an existing stream.
Clears all buffers for this stream and causes any buffered data to be written to the underlying device.
Reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read.
Begins an asynchronous read operation.
Waits for the pending asynchronous read to complete.
Not supported
Sets the length of the current stream.
Writes a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written.
Begins an asynchronous write operation.
Ends an asynchronous write operation.
Closes the current stream and releases any resources (such as sockets and file handles) associated with the current stream.
Returns whether authentication was successful.
Indicates whether data sent using this SslStream is encrypted.
Indicates whether both server and client have been authenticated.
Indicates whether the local side of the connection was authenticated as the server.
Indicates whether the data sent using this stream is signed.
Gets a value indicating whether the current stream supports reading.
Gets a value indicating whether the current stream supports seeking.
Gets a value indicating whether the current stream supports writing.
Gets the length in bytes of the stream.
Gets or sets the position within the current stream.
Gets or sets a value, in miliseconds, that determines how long the stream will attempt to read before timing out.
Gets or sets a value, in miliseconds, that determines how long the stream will attempt to write before timing out.
The Stack class can only contain objects marked with this interface.
Encapsultes the sk_* functions
Calls sk_new_null()
Calls sk_shift()
Calls sk_free()
Calls sk_dup()
Returns sk_find()
Calls sk_insert()
Calls sk_delete()
Calls sk_push()
Clear all items from the stack
Returns true if the specified item exists in this stack.
Not implemented
Calls sk_delete_ptr()
Returns an enumerator for this stack
Indexer that returns sk_value() or calls sk_insert()
Returns sk_num()
Returns false.
Contains the set of elements that make up a Version.
Create a Version from a raw uint value
Conversion to a string.
Calls SSLeay_version()
Returns the current version of the native library.
Returns the version that this wrapper is built for.
Major portion of the Version.
Minor portion of the Version.
Fix portion of the Version.
Patch portion of the Version. These should start at 'a' and continue to 'z'.
Status portion of the Version.
The raw uint value.
Returns the raw status portion of a Version.
The kinds of status that
The status nibble has the value 0
The status nibble is 1 to 14 (0x0e)
The status nibble is 0x0f
SSLEAY_* constants used for with GetVersion()
SSLEAY_VERSION
SSLEAY_CFLAGS
SSLEAY_BUILT_ON
SSLEAY_PLATFORM
SSLEAY_DIR
Wraps the X509 object
Calls X509_new()
Calls PEM_read_bio_X509()
Factory method that returns a X509 using d2i_X509_bio()
Factory method to create a X509Certificate from a PKCS7 encoded in PEM
Factory method to create a X509Certificate from a PKCS7 encoded in DER
Factory method to create a X509Certificate from a PKCS12
Creates a new X509 certificate
Calls X509_sign()
Returns X509_check_private_key()
Returns X509_check_trust()
Returns X509_verify()
Returns X509_digest()
Returns X509_pubkey_digest()
Calls PEM_write_bio_X509()
Calls i2d_X509_bio()
Calls X509_print()
Converts a X509 into a request using X509_to_X509_REQ()
Calls X509_add_ext()
Calls X509_add1_ext_i2d()
Calls X509_free()
Compares X509Certificate
Returns the hash code of the issuer's oneline xor'd with the serial number
Returns X509_cmp()
Uses X509_get_subject_name() and X509_set_issuer_name()
Uses X509_get_issuer_name() and X509_set_issuer_name()
Uses X509_get_serialNumber() and X509_set_serialNumber()
Uses the notBefore field and X509_set_notBefore()
Uses the notAfter field and X509_set_notAfter()
Uses the version field and X509_set_version()
Uses X509_get_pubkey() and X509_set_pubkey()
Returns whether or not a Private Key is attached to this Certificate
Gets and Sets the Private Key for this Certificate.
The Private Key MUST match the Public Key.
Returns the PEM formatted string of this object
Returns the DER formatted byte array for this object
Used for generating sequence numbers by the CertificateAuthority
Returns the next available sequence number
Implements the ISequenceNumber interface.
The sequence number is read from a file, incremented,
then written back to the file
Constructs a FileSerialNumber. The path specifies where
the serial number should be read and written to.
Implements the Next() method of the ISequenceNumber interface.
The sequence number is read from a file, incremented,
then written back to the file
Simple implementation of the ISequenceNumber interface.
Construct a SimpleSerialNumber with the initial sequence number set to 0.
Construct a SimpleSerialNumber with the initial sequence number
set to the value specified by the seed parameter.
Returns the next available sequence number.
This implementation simply increments the current
sequence number and returns it.
High-level interface which does the job of a CA (Certificate Authority)
Duties include processing incoming X509 requests and responding
with signed X509 certificates, signed by this CA's private key.
Factory method which creates a X509CertifiateAuthority where
the internal certificate is self-signed
Factory method that creates a X509CertificateAuthority instance with
an internal self signed certificate
Factory method that creates a X509CertificateAuthority instance with
an internal self signed certificate. This method allows creation without
the need for the Configuration file, X509V3Extensions may be added
with the X509V3ExtensionList parameter
Constructs a X509CertifcateAuthority with the specified parameters.
Process and X509Request. This includes creating a new X509Certificate
and signing this certificate with this CA's private key.
Process and X509Request. This includes creating a new X509Certificate
and signing this certificate with this CA's private key.
Dispose the key, certificate, and the configuration
Accessor to the CA's X509 Certificate
Accessor to the CA's key used for signing.
Contains a chain X509_INFO objects.
Default null constructor
Creates a chain from a BIO. Expects the stream to contain
a collection of X509_INFO objects in PEM format by calling
PEM_X509_INFO_read_bio()
Creates a new chain from the specified PEM-formatted string
Returns X509_find_by_issuer_and_serial()
Returns X509_find_by_subject()
A List for X509Certificate types.
Creates an empty X509List
Calls PEM_x509_INFO_read_bio()
Populates this list from a PEM-formatted string
Populates this list from a DER buffer.
Wraps the X509_EXTENSION object
Calls X509_EXTENSION_new()
Calls X509V3_EXT_conf_nid()
Calls X509_EXTENSION_free()
Calls X509V3_EXT_print()
Calls X509_EXTENSION_dup()
Uses X509_EXTENSION_get_object() and OBJ_nid2ln()
Uses X509_EXTENSION_get_object() and OBJ_obj2nid()
returns X509_EXTENSION_get_critical()
Returns X509_EXTENSION_get_data()
X509 Extension entry
Dictionary for X509 v3 extensions - Name, Value
Encapsulates the X509_NAME_* functions
Calls X509_NAME_new()
Calls X509_NAME_dup()
Calls X509_NAME_new()
Parses the string and returns an X509Name based on value.
Calls X509_NAME_add_entry_by_NID after converting the
name to a NID using OBJ_txt2nid()
Calls X509_NAME_add_entry_by_NID()
Returns X509_NAME_get_text_by_NID()
Returns X509_NAME_get_text_by_NID() after converting the name
into a NID using OBJ_txt2nid()
Calls X509_NAME_get_index_by_NID()
Returns the index of a name entry using GetIndexByNid()
Returns the index of a name entry using GetIndexByNid()
Returns true if the name entry with the specified name exists.
Returns X509_NAME_digest()
Calls X509_NAME_print_ex()
Calls X509_NAME_free()
Returns CompareTo(rhs) == 0
Returns ToString().GetHashCode()
Returns X509_NAME_cmp()
Returns X509_NAME_oneline()
Accessor to the name entry for 'CN'
Accessor to the name entry for 'C'
Accessor to the name entry for 'L'
Accessor to the name entry for 'ST'
Accessor to the name entry for 'O'
Accessor to the name entry for 'OU'
Accessor to the name entry for 'G'
Accessor to the name entry for 'S'
Accessor to the name entry for 'I'
Accessor to the name entry for 'UID'
Accessor to the name entry for 'SN'
Accessor to the name entry for 'T'
Accessor to the name entry for 'D'
Accessor to the name entry for 'X509'
Returns X509_NAME_entry_count()
Indexer to a name entry by name
Indexer to a name entry by index
Wraps the X509_OBJECT: a glorified union
Calls X509_OBJECT_up_ref_count()
Calls X509_OBJECT_free_contents()
Returns a Certificate if the type is X509_LU_X509
Returns the PrivateKey if the type is X509_LU_PKEY
Wraps a X509_REQ object.
Calls X509_REQ_new()
Calls X509_REQ_new() and then initializes version, subject, and key.
Calls PEM_read_bio_X509_REQ()
Creates a X509_REQ from a PEM formatted string.
Sign this X509Request using the supplied key and digest.
Verify this X509Request against the supplied key.
Calls X509_REQ_print()
Calls PEM_write_bio_X509_REQ()
Converts this request into a certificate using X509_REQ_to_X509().
Calls X509_REQ_free()
Accessor to the version field. The settor calls X509_REQ_set_version().
Accessor to the pubkey field. Uses X509_REQ_get_pubkey() and X509_REQ_set_pubkey()
Accessor to the subject field. Setter calls X509_REQ_set_subject_name().
Returns the PEM formatted string for this object.
Wraps the X509_STORE object
Calls X509_STORE_new()
Initializes the X509Store object with a pre-existing native X509_STORE pointer
Calls X509_STORE_new() and then adds the specified chain as trusted.
Calls X509_STORE_new() and then adds the specified chaing as trusted.
Returns the trusted state of the specified certificate
Adds a chain to the trusted list.
Adds a certificate to the trusted list, calls X509_STORE_add_cert()
Add an untrusted certificate
Calls X509_STORE_free()
Wraps the objs
member on the raw X509_STORE structure
Accessor to the untrusted list
Wraps the X509_STORE_CTX object
Calls X509_STORE_CTX_new()
Calls X509_STORE_CTX_init()
Returns X509_verify_cert()
Calls X509_STORE_CTX_free()
Returns X509_STORE_CTX_get_current_cert()
Returns X509_STORE_CTX_get_error_depth()
Getter returns X509_STORE_CTX_get_error(), setter calls X509_STORE_CTX_set_error()
Returns an X509Store based on this context
Returns X509_verify_cert_error_string()
Calls SSL_new()
Calls SSL_free()
Returns SSL_CIPHER_name()
Returns SSL_CIPHER_description()
Returns SSL_CIPHER_get_bits()
Wraps the SST_CTX structure and methods
Calls SSL_CTX_new()
Sets the certificate store for the context - calls SSL_CTX_set_cert_store
The X509Store object and contents will be freed when the context is disposed.
Ensure that the store object and it's contents have IsOwner set to false
before assigning them into the context.
Sets the certificate verification mode and callback - calls SSL_CTX_set_verify
Sets the certificate verification depth - calls SSL_CTX_set_verify_depth
base override - calls SSL_CTX_free()
Calls SSL_CTX_set_options
Calls SSL_CTX_set_client_CA_list/SSL_CTX_get_client_CA_list
The Stack and the X509Name objects contined within them
are freed when the context is disposed. Make sure that
the Stack and X509Name objects have set IsOwner to false
before assigning them to the context.
SSL_FILETYPE_PEM
SSL_FILETYPE_ASN1
Options enumeration for Options property
X509_V_*
X509_V_OK
X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT
X509_V_ERR_UNABLE_TO_GET_CRL
X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE
X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE
X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY
X509_V_ERR_CERT_SIGNATURE_FAILURE
X509_V_ERR_CRL_SIGNATURE_FAILURE
X509_V_ERR_CERT_NOT_YET_VALID
X509_V_ERR_CERT_HAS_EXPIRED
X509_V_ERR_CRL_NOT_YET_VALID
X509_V_ERR_CRL_HAS_EXPIRED
X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD
X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD
X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD
X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD
X509_V_ERR_OUT_OF_MEM
X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT
X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN
X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY
X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE
X509_V_ERR_CERT_CHAIN_TOO_LONG
X509_V_ERR_CERT_REVOKED
X509_V_ERR_INVALID_CA
X509_V_ERR_PATH_LENGTH_EXCEEDED
X509_V_ERR_INVALID_PURPOSE
X509_V_ERR_CERT_UNTRUSTED
X509_V_ERR_CERT_REJECTED
X509_V_ERR_SUBJECT_ISSUER_MISMATCH
X509_V_ERR_AKID_SKID_MISMATCH
X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH
X509_V_ERR_KEYUSAGE_NO_CERTSIGN
X509_V_ERR_UNABLE_TO_GET_CRL_ISSUER
X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION
X509_V_ERR_KEYUSAGE_NO_CRL_SIGN
X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION
X509_V_ERR_INVALID_NON_CA
X509_V_ERR_PROXY_PATH_LENGTH_EXCEEDED
X509_V_ERR_KEYUSAGE_NO_DIGITAL_SIGNATURE
X509_V_ERR_PROXY_CERTIFICATES_NOT_ALLOWED
X509_V_ERR_APPLICATION_VERIFICATION
Wraps the SSL_METHOD structure and methods
Throws NotImplementedException()
SSLv2_method()
SSLv2_server_method()
SSLv2_client_method()
SSLv3_method()
SSLv3_server_method()
SSLv3_client_method()
SSLv23_method()
SSLv23_server_method()
SSLv23_client_method()
TLSv1_method()
TLSv1_server_method()
TLSv1_client_method()
DTLSv1_method()
DTLSv1_server_method()
DTLSv1_client_method()
Wraps the BN_* set of functions.
Creates a BigNumber object by calling BN_value_one()
Calls BN_new()
Calls BN_dup() on the BigNumber passed in.
Creates a BigNumber by calling BN_set_word()
Calls BN_dec2bn()
Calls BN_hex2bn()
Calls BN_bin2bn()
Calls BN_bn2dec()
Calls BN_bn2hex()
Calls BN_get_word()
Creates a new BigNumber object from a uint.
Calls BN_bn2bin()
Calls BN_bn2bin()
Calls BN_clear()
Calls BN_rand_range()
Calls BN_pseudo_rand()
Calls BN_pseudo_rand_range()
Calls BN_add()
Calls BN_sub()
Determines if lhs is by-value equal to rhs
Determines if lhs is by-value different than rhs
Calls BN_cmp()
Creates a hash code by converting this object to a decimal string and
returns the hash code of that string.
Calls BN_print()
Calls BN_free()
Calls BN_cmp()
Calls BN_options()
Returns BN_num_bits()
Converts the result of Bits into the number of bytes.
Generator callback. Used mostly for status indications for long-
running generator functions.