File: //usr/share/ri/3.0.0/system/OpenSSL/Netscape/SPKI/cdesc-SPKI.ri
U:RDoc::NormalClass[iI" SPKI:ETI"OpenSSL::Netscape::SPKI;TI"Object;To:RDoc::Markup::Document:@parts[o;;[o:RDoc::Markup::Paragraph;[I"NA Simple Public Key Infrastructure implementation (pronounced "spooky"). ;TI" The structure is defined as;To:RDoc::Markup::Verbatim;[I"*PublicKeyAndChallenge ::= SEQUENCE {
;TI"" spki SubjectPublicKeyInfo,
;TI" challenge IA5STRING
;TI"}
;TI"
;TI"0SignedPublicKeyAndChallenge ::= SEQUENCE {
;TI"4 publicKeyAndChallenge PublicKeyAndChallenge,
;TI"/ signatureAlgorithm AlgorithmIdentifier,
;TI" signature BIT STRING
;TI"}
;T:@format0o; ;[ I"Owhere the definitions of SubjectPublicKeyInfo and AlgorithmIdentifier can ;TI"Lbe found in RFC5280. SPKI is typically used in browsers for generating ;TI"Ka public/private key pair and a subsequent certificate request, using ;TI"the HTML <keygen> element.;To:RDoc::Markup::BlankLine S:RDoc::Markup::Heading:
leveli: textI"
Examples;T@$S;
;i;I"Creating an SPKI;To;
;[I"'key = OpenSSL::PKey::RSA.new 2048
;TI"(spki = OpenSSL::Netscape::SPKI.new
;TI"(spki.challenge = "RandomChallenge"
;TI"&spki.public_key = key.public_key
;TI"3spki.sign(key, OpenSSL::Digest.new('SHA256'))
;TI"J#send a request containing this to a server generating a certificate
;T;0S;
;i;I"Verifying an SPKI request;To;
;[I"request = #...
;TI"0spki = OpenSSL::Netscape::SPKI.new request
;TI")unless spki.verify(spki.public_key)
;TI" # signature is invalid
;TI" end
;TI"
#proceed;T;0:
@fileI"ext/openssl/ossl_ns_spki.c;T:0@omit_headings_from_table_of_contents_below0;0;0[ [ [ [[I"
class;T[[:public[[I"new;TI"ext/openssl/ossl_ns_spki.c;T[:protected[ [:private[ [I"
instance;T[[;[[I"challenge;T@G[I"challenge=;T@G[I"public_key;T@G[I"public_key=;T@G[I" sign;T@G[I"to_der;T@G[I"to_pem;T@G[I" to_s;T@G[I"to_text;T@G[I"verify;T@G[;[ [;[ [ [U:RDoc::Context::Section[i 0o;;[ ;0;0[@;I"OpenSSL::Netscape;TcRDoc::NormalModule