aboutsummaryrefslogtreecommitdiffstats
path: root/README
diff options
context:
space:
mode:
authorMichal Rokos <m.rokos@sh.cvut.cz>2001-11-16 11:20:13 +0000
committerMichal Rokos <m.rokos@sh.cvut.cz>2001-11-16 11:20:13 +0000
commit8903e757c052d3a99aada758bb628ec135360e60 (patch)
tree5f0e99803c1fc5c6909fd7d325d0f279265b97cf /README
downloadruby-openssl-history-8903e757c052d3a99aada758bb628ec135360e60.tar.gz
Initial revision
Diffstat (limited to 'README')
-rw-r--r--README175
1 files changed, 175 insertions, 0 deletions
diff --git a/README b/README
new file mode 100644
index 0000000..0fc2576
--- /dev/null
+++ b/README
@@ -0,0 +1,175 @@
+$Id$
+'OpenSSL for Ruby' project
+Copyright (C) 2001 Michal Rokos <m.rokos@sh.cvut.cz>
+All rights reserved.
+
+This program is licenced under the same licence as Ruby.
+(See the file 'LICENCE'.)
+
+[Done] (but not fully tested)
+= OpenSSL config file parser (part) --- TO BE DROPPED? (any idea?)
+= PKey:: RSA,DSA keys - new, load, export
+= X509::Certificate - generating new certs, load, looking inside
+= X509::CRL - load, new, looking inside
+= X509::Name - new, export to_str, to_a, to_h (hash)
+= X509::Revoked - new, looking inside (on parameters)
+= X509::Store - new, import trusted certs and CRL, verifiing certs
+= Digest::... - various hashes
+= X509::Request - Cert requests
+= X509::Attribute - as X509Request extensions (not tested)
+= X509::Extension - to Certs, CRLs...
+= X509::ExtensionMaker - for easy creating new Extensions
+= Netscape::SPKI - for requests from NetscapeCommunicators
+= Cipher::... - various ciphers
+= basic PRNG functions (random generator) for OpenSSL module and class Random
+= SSLSocket (merged Gotou Yuuzou's SSLsocket-Ruby project)
+= PKCS7 (first try)
+
+[To-Do]
+= check for memory leaking :-))
+= cleaner code
+= examples
+= RubyUnit to be used!
+= API documentation
+= comments to sources!!!
+= further functionality to existing
+= Std. Extensions, Attributes to be made as Classes?
+= AttributeFactory?
+= add aliases to to_pem as s_dump s_load to support Marshal module
+= CipherFactory?
+= autogen random IVs for Ciphers
+= safe BigNums
+= PKCS12
+= PKCS8
+= HMAC
+= ASN.1 ???
+= BIO ???
+= compat tests for RSA/DSA sign/encrypt
+
+[Requirements]
+ Ruby >= 1.6.4
+ OpenSSL >= 0.9.6b
+
+[Instalation]
+ ruby extconf.rb
+ make
+ su root -c make install
+
+[Documentation/API]
+ Sorry, not done. See 'test' folder's examples and grep C sources for rb_define_method :-))
+
+--------------------------------------------------
+OpenSSL::
+ .seed(String) => true|false
+ .load_random_file(Filename) => true|false
+ .write_random_file(Filename) => true|false
+
+ Random
+ .seed(String) => true|false
+ .load_random_file(Filename) => true|false
+ .write_random_file(Filename) => true|false
+ .random_bytes(size) => String
+
+ Cipher::
+ constants: UNSPEC
+ ECB, CFB, OFB, CBC (modes)
+ EDE, EDE3, BIT40, BIT64 (types)
+
+ BlowFish (allowed: ECB, CFB, OFB, CBC)
+ Cast5 (ECB, CFB, OFB, CBC)
+ DES (ECB, EDE, EDE3, CFB, CFB:EDE, CFB:EDE3, OFB, OFB:EDE, OFB:EDE3, CBC, CBC:EDE, CBC:EDE3)
+ Idea (ECB, CFB, OFB, CBC)
+ RC2 (ECB, CBC, BIT40:CBC, BIT64:CBC, CFB, OFB)
+ RC4 (UNSPEC, BIT40)
+ RC5 (ECB, CFB, OFB, CBC)
+ .new([mode|type] [,type|mode]) => self
+ .encrypt(Password [, Init_Vect] [, Data]) => self or String
+ .decrypt(Password [, Init_Vect] [, Data]) => self or String
+ .update(String) => String
+ .<<(String) <=> .update
+ .cipher => String
+
+ Digest::
+ MD2
+ MD5
+ MDC2
+ RIPEMD160
+ SHA
+ SHA1
+ DSS
+ DSS1
+ .new([String]) => self
+ .update(String) => self
+ .<<(String) <=> .update
+ .digest => String
+ .hexdigest => String
+ .inspect <=> .hexdigest
+ .to_str <=> .hexdigest
+
+ Netscape::
+ SPKI
+ .new([String (PEM)]) => self
+ .to_pem => String (PEM)
+ .to_str => String
+ .public_key => PKey
+ .public_key=(PKey) => PKey
+ .sign(PKey, Digest) => self
+ .verify(PKey) => true|false
+ .challenge => String
+ .challenge(String) => String
+
+ PKey::
+ DSA
+ .new([keylen | String (PEM)]) => self
+ .public? => true|false
+ .private? => true|false
+ .to_str => String
+ .export([Cipher [, Password]]) => String (PEM)
+ .to_pem <=> .export
+ .public_key => pub.key from key
+ .to_der => String (DER)
+ .sign(Digest, String) => String
+ .sign_digest(String (dig)) => String
+ .verify(Digest, String (data), String (sig)) => true|false
+ .verify_digest(String (dig), String (sig)) => true|false
+
+ RSA
+ .new([keylen | String (PEM)]) => self
+ .public? => true|false
+ .private? => true|false
+ .to_str => String
+ .export([Cipher [, Password]]) => String (PEM)
+ .to_pem <=> .export
+ .public_key => pub.key from key
+ .public_encrypt(String) => String
+ .public_decrypr(String) => String
+ .private_ecrypt(String) => String
+ .private_decrypt(String) => String
+ .to_der => String (DER)
+ .sign(Digest, String) => String
+ .verify(Digest, String (data), String (sig)) => true|false
+
+ X509::
+ Attribute
+ Certificate
+ CRL
+ Extension
+ ExtensionFactory
+ Name
+ Request
+ Revoked
+ Store
+--------------------------------------------------
+
+[Examples]
+ There are some braindead in 'test' directory
+
+[Note]
+ All code is under development - API/method names can change
+ All feedback, bug reports, requests are welcomed!
+
+
+ Enjoy!
+
+ Michal <m.rokos@sh.cvut.cz>
+