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 =
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
SSL_CTRL_SET_TLSEXT_HOSTNAME =
55
SSL_CTRL_SET_TLSEXT_SERVERNAME_CB =
53
TLSEXT_NAMETYPE_host_name =
0
SSL_TLSEXT_ERR_OK =
0
SSL_TLSEXT_ERR_ALERT_WARNING =
1
SSL_TLSEXT_ERR_ALERT_FATAL =
2
SSL_TLSEXT_ERR_NOACK =
3
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
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



93
94
95
# File 'lib/ruby-tls/ssl.rb', line 93

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

.SSL_CTX_sess_set_cache_size(ssl_ctx, op) ⇒ Object



177
178
179
# File 'lib/ruby-tls/ssl.rb', line 177

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



173
174
175
# File 'lib/ruby-tls/ssl.rb', line 173

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



169
170
171
# File 'lib/ruby-tls/ssl.rb', line 169

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

.SSL_CTX_set_tlsext_servername_callback(ctx, callback) ⇒ Object



193
194
195
# File 'lib/ruby-tls/ssl.rb', line 193

def self.SSL_CTX_set_tlsext_servername_callback(ctx, callback)
    SSL_CTX_callback_ctrl(ctx, SSL_CTRL_SET_TLSEXT_SERVERNAME_CB, callback)
end

.SSL_set_tlsext_host_name(ssl, host_name) ⇒ Object



183
184
185
186
# File 'lib/ruby-tls/ssl.rb', line 183

def self.SSL_set_tlsext_host_name(ssl, host_name)
    name = FFI::MemoryPointer.from_string(host_name)
    SSL_ctrl(ssl, SSL_CTRL_SET_TLSEXT_HOSTNAME, TLSEXT_NAMETYPE_host_name, name)
end