Class: Themis::SKeyPairGen
Constant Summary
ThemisImport::THEMIS_KEY_EC_PRIVATE, ThemisImport::THEMIS_KEY_EC_PUBLIC, ThemisImport::THEMIS_KEY_INVALID, ThemisImport::THEMIS_KEY_RSA_PRIVATE, ThemisImport::THEMIS_KEY_RSA_PUBLIC
Instance Method Summary
collapse
string_to_pointer_size
Instance Method Details
#ec ⇒ Object
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
|
# File 'lib/rbthemis.rb', line 152
def ec
private_key_length = FFI::MemoryPointer.new(:uint)
public_key_length = FFI::MemoryPointer.new(:uint)
res = themis_gen_ec_key_pair(
nil, private_key_length, nil, public_key_length)
if res != BUFFER_TOO_SMALL
raise ThemisError, "Themis failed generating EC KeyPair: #{res}"
end
private_key = FFI::MemoryPointer.new(:char, private_key_length.read_uint)
public_key = FFI::MemoryPointer.new(:char, public_key_length.read_uint)
res = themis_gen_ec_key_pair(
private_key, private_key_length, public_key, public_key_length)
if res != SUCCESS
raise ThemisError, "Themis failed generating EC KeyPair: #{res}"
end
[private_key.get_bytes(0, private_key_length.read_uint),
public_key.get_bytes(0, public_key_length.read_uint)]
end
|
#rsa ⇒ Object
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
|
# File 'lib/rbthemis.rb', line 175
def rsa
private_key_length = FFI::MemoryPointer.new(:uint)
public_key_length = FFI::MemoryPointer.new(:uint)
res = themis_gen_rsa_key_pair(
nil, private_key_length, nil, public_key_length)
if res != BUFFER_TOO_SMALL
raise ThemisError, "Themis failed generating RSA KeyPair: #{res}"
end
private_key = FFI::MemoryPointer.new(:char, private_key_length.read_uint)
public_key = FFI::MemoryPointer.new(:char, public_key_length.read_uint)
res = themis_gen_rsa_key_pair(
private_key, private_key_length, public_key, public_key_length)
if res != SUCCESS
raise ThemisError, "Themis failed generating RSA KeyPair: #{res}"
end
[private_key.get_bytes(0, private_key_length.read_uint),
public_key.get_bytes(0, public_key_length.read_uint)]
end
|