D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
proc
/
self
/
root
/
opt
/
alt
/
ruby34
/
share
/
ri
/
system
/
OpenSSL
/
PKey
/
DH
/
Filename :
cdesc-DH.ri
back
Copy
U:RDoc::NormalClass[iI"DH:ETI"OpenSSL::PKey::DH;TI"OpenSSL::PKey::PKey;To:RDoc::Markup::Document:@parts[o;;[ : @fileI"$ext/openssl/lib/openssl/pkey.rb;T:0@omit_headings_from_table_of_contents_below0o;;[o:RDoc::Markup::Paragraph;[I"LAn implementation of the Diffie-Hellman key exchange protocol based on ;TI"Ldiscrete logarithms in finite fields, the same basis that DSA is built ;TI"on.;To:RDoc::Markup::BlankLine S:RDoc::Markup::Heading: leveli: textI"7Accessor methods for the Diffie-Hellman parameters;To:RDoc::Markup::List: @type: NOTE:@items[ o:RDoc::Markup::ListItem:@label[I" DH#p;T;[o;;[I"AThe prime (an OpenSSL::BN) of the Diffie-Hellman parameters.;To;;[I" DH#g;T;[o;;[I"GThe generator (an OpenSSL::BN) g of the Diffie-Hellman parameters.;To;;[I"DH#pub_key;T;[o;;[I"KThe per-session public key (an OpenSSL::BN) matching the private key. ;TI"/This needs to be passed to DH#compute_key.;To;;[I"DH#priv_key;T;[o;;[I"1The per-session private key, an OpenSSL::BN.;T@S; ;i;I"Example of a key exchange;To:RDoc::Markup::Verbatim;[I"L# you may send the parameters (der) and own public key (pub1) publicly ;TI""# to the participating party ;TI"'dh1 = OpenSSL::PKey::DH.new(2048) ;TI"der = dh1.to_der ;TI"pub1 = dh1.pub_key ;TI" ;TI":# the other party generates its per-session key pair ;TI"+dhparams = OpenSSL::PKey::DH.new(der) ;TI"0dh2 = OpenSSL::PKey.generate_key(dhparams) ;TI"pub2 = dh2.pub_key ;TI" ;TI"'symm_key1 = dh1.compute_key(pub2) ;TI"'symm_key2 = dh2.compute_key(pub1) ;TI"*puts symm_key1 == symm_key2 # => true;T:@format0; I"ext/openssl/ossl_pkey_dh.c;T; 0; 0; 0[ [ [[I"OpenSSL::Marshal;To;;[ ; @; 0I"$ext/openssl/lib/openssl/pkey.rb;T[[I" class;T[[:public[[I" generate;T@R[I"new;TI"ext/openssl/ossl_pkey_dh.c;T[:protected[ [:private[ [I" instance;T[[;[[I"compute_key;T@R[I"export;T@][I"generate_key!;T@R[I"initialize_copy;T@][I"params;T@][I"params_ok?;T@][I" private?;T@][I"public?;T@][I"public_key;T@R[I"set_key;T@][I"set_pqg;T@][I"to_der;T@][I"to_pem;T@][I" to_s;T@][;[ [;[ [ [U:RDoc::Context::Section[i 0o;;[ ; 0; 0[@I"ext/openssl/ossl_pkey.c;TI"OpenSSL::PKey;TcRDoc::NormalModule