Module: RubyTls::SSL

Extended by:
FFI::Library
Defined in:
lib/ruby-tls/ssl.rb

Defined Under Namespace

Classes: Box, Context

Constant Summary collapse

SSL_ST_OK =

CONSTANTS

0x03
BIO_CTRL_PENDING =

opt - is their more data buffered?

10
SSL_CTRL_OPTIONS =
32
SSL_CTRL_MODE =
33
SSL_CTRL_SET_SESS_CACHE_SIZE =
42
PrivateMaterials =
"-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQDCYYhcw6cGRbhBVShKmbWm7UVsEoBnUf0cCh8AX+MKhMxwVDWV\nIgdskntn3cSJjRtmgVJHIK0lpb/FYHQB93Ohpd9/Z18pDmovfFF9nDbFF0t39hJ/\nAqSzFB3GiVPoFFZJEE1vJqh+3jzsSF5K56bZ6azz38VlZgXeSozNW5bXkQIDAQAB\nAoGALA89gIFcr6BIBo8N5fL3aNHpZXjAICtGav+kTUpuxSiaym9cAeTHuAVv8Xgk\nH2Wbq11uz+6JMLpkQJH/WZ7EV59DPOicXrp0Imr73F3EXBfR7t2EQDYHPMthOA1D\nI9EtCzvV608Ze90hiJ7E3guGrGppZfJ+eUWCPgy8CZH1vRECQQDv67rwV/oU1aDo\n6/+d5nqjeW6mWkGqTnUU96jXap8EIw6B+0cUKskwx6mHJv+tEMM2748ZY7b0yBlg\nw4KDghbFAkEAz2h8PjSJG55LwqmXih1RONSgdN9hjB12LwXL1CaDh7/lkEhq0PlK\nPCAUwQSdM17Sl0Xxm2CZiekTSlwmHrtqXQJAF3+8QJwtV2sRJp8u2zVe37IeH1cJ\nxXeHyjTzqZ2803fnjN2iuZvzNr7noOA1/Kp+pFvUZUU5/0G2Ep8zolPUjQJAFA7k\nxRdLkzIx3XeNQjwnmLlncyYPRv+qaE3FMpUu7zftuZBnVCJnvXzUxP3vPgKTlzGa\ndg5XivDRfsV+okY5uQJBAMV4FesUuLQVEKb6lMs7rzZwpeGQhFDRfywJzfom2TLn\n2RdJQQ3dcgnhdVDgt5o1qkmsqQh8uJrJ9SdyLIaZQIc=\n-----END RSA PRIVATE KEY-----\n-----BEGIN CERTIFICATE-----\nMIID6TCCA1KgAwIBAgIJANm4W/Tzs+s+MA0GCSqGSIb3DQEBBQUAMIGqMQswCQYD\nVQQGEwJVUzERMA8GA1UECBMITmV3IFlvcmsxETAPBgNVBAcTCE5ldyBZb3JrMRYw\nFAYDVQQKEw1TdGVhbWhlYXQubmV0MRQwEgYDVQQLEwtFbmdpbmVlcmluZzEdMBsG\nA1UEAxMUb3BlbmNhLnN0ZWFtaGVhdC5uZXQxKDAmBgkqhkiG9w0BCQEWGWVuZ2lu\nZWVyaW5nQHN0ZWFtaGVhdC5uZXQwHhcNMDYwNTA1MTcwNjAzWhcNMjQwMjIwMTcw\nNjAzWjCBqjELMAkGA1UEBhMCVVMxETAPBgNVBAgTCE5ldyBZb3JrMREwDwYDVQQH\nEwhOZXcgWW9yazEWMBQGA1UEChMNU3RlYW1oZWF0Lm5ldDEUMBIGA1UECxMLRW5n\naW5lZXJpbmcxHTAbBgNVBAMTFG9wZW5jYS5zdGVhbWhlYXQubmV0MSgwJgYJKoZI\nhvcNAQkBFhllbmdpbmVlcmluZ0BzdGVhbWhlYXQubmV0MIGfMA0GCSqGSIb3DQEB\nAQUAA4GNADCBiQKBgQDCYYhcw6cGRbhBVShKmbWm7UVsEoBnUf0cCh8AX+MKhMxw\nVDWVIgdskntn3cSJjRtmgVJHIK0lpb/FYHQB93Ohpd9/Z18pDmovfFF9nDbFF0t3\n9hJ/AqSzFB3GiVPoFFZJEE1vJqh+3jzsSF5K56bZ6azz38VlZgXeSozNW5bXkQID\nAQABo4IBEzCCAQ8wHQYDVR0OBBYEFPJvPd1Fcmd8o/Tm88r+NjYPICCkMIHfBgNV\nHSMEgdcwgdSAFPJvPd1Fcmd8o/Tm88r+NjYPICCkoYGwpIGtMIGqMQswCQYDVQQG\nEwJVUzERMA8GA1UECBMITmV3IFlvcmsxETAPBgNVBAcTCE5ldyBZb3JrMRYwFAYD\nVQQKEw1TdGVhbWhlYXQubmV0MRQwEgYDVQQLEwtFbmdpbmVlcmluZzEdMBsGA1UE\nAxMUb3BlbmNhLnN0ZWFtaGVhdC5uZXQxKDAmBgkqhkiG9w0BCQEWGWVuZ2luZWVy\naW5nQHN0ZWFtaGVhdC5uZXSCCQDZuFv087PrPjAMBgNVHRMEBTADAQH/MA0GCSqG\nSIb3DQEBBQUAA4GBAC1CXey/4UoLgJiwcEMDxOvW74plks23090iziFIlGgcIhk0\nDf6hTAs7H3MWww62ddvR8l07AWfSzSP5L6mDsbvq7EmQsmPODwb6C+i2aF3EDL8j\nuw73m4YIGI0Zw2XdBpiOGkx2H56Kya6mJJe/5XORZedh1wpI7zki01tHYbcy\n-----END CERTIFICATE-----\n"
BuiltinPasswdCB =
FFI::Function.new(:int, [:pointer, :int, :int, :pointer]) do |buffer, len, flag, data|
    buffer.write_string('kittycat')
    8
end
CRYPTO_LOCK =
0x1
LockingCB =
FFI::Function.new(:void, [:int, :int, :string, :int]) do |mode, type, file, line|
    if (mode & CRYPTO_LOCK) != 0
        SSL_LOCKS[type].lock
    else
        # Unlock a lock
        SSL_LOCKS[type].unlock
    end
end
ThreadIdCB =
FFI::Function.new(:ulong, []) do
    Thread.current.object_id
end
SSL_LOCKS =

Setup multi-threaded support

[]
DEFAULT_PRIVATE =
pointer.get_pointer(0)
DEFAULT_CERT =
pointer.get_pointer(0)
SSL_MODE_RELEASE_BUFFERS =

Save RAM by releasing read and write buffers when they’re empty

0x00000010
SSL_OP_ALL =
0x80000BFF
SSL_FILETYPE_PEM =
1

Class Method Summary collapse

Class Method Details

.BIO_pending(bio) ⇒ Object



77
78
79
# File 'lib/ruby-tls/ssl.rb', line 77

def self.BIO_pending(bio)
    BIO_ctrl(bio, BIO_CTRL_PENDING, 0, nil)
end

.SSL_CTX_sess_set_cache_size(ssl_ctx, op) ⇒ Object



138
139
140
# File 'lib/ruby-tls/ssl.rb', line 138

def self.SSL_CTX_sess_set_cache_size(ssl_ctx, op)
    SSL_CTX_ctrl(ssl_ctx, SSL_CTRL_SET_SESS_CACHE_SIZE, op, nil)
end

.SSL_CTX_set_mode(ssl_ctx, op) ⇒ Object



134
135
136
# File 'lib/ruby-tls/ssl.rb', line 134

def self.SSL_CTX_set_mode(ssl_ctx, op)
    SSL_CTX_ctrl(ssl_ctx, SSL_CTRL_MODE, op, nil)
end

.SSL_CTX_set_options(ssl_ctx, op) ⇒ Object



130
131
132
# File 'lib/ruby-tls/ssl.rb', line 130

def self.SSL_CTX_set_options(ssl_ctx, op)
    SSL_CTX_ctrl(ssl_ctx, SSL_CTRL_OPTIONS, op, nil)
end

.SSL_is_init_finished(ssl) ⇒ Object



58
59
60
# File 'lib/ruby-tls/ssl.rb', line 58

def self.SSL_is_init_finished(ssl)
    SSL_state(ssl) == SSL_ST_OK
end