mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	* ext/openssl/lib/openssl/x509.rb: new method X509::Name::parse.
* ext/openssl/ossl_digest.c: add ossl_digest_new(). * ext/openssl/ossl_digest.h: ditto. * ext/openssl/ossl_cipher.c: add ossl_cipher_new(). * ext/openssl/ossl_cipher.h: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4511 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
		
							parent
							
								
									8d4d2e4323
								
							
						
					
					
						commit
						d9f38cbee8
					
				
					 6 changed files with 56 additions and 1 deletions
				
			
		
							
								
								
									
										12
									
								
								ChangeLog
									
										
									
									
									
								
							
							
						
						
									
										12
									
								
								ChangeLog
									
										
									
									
									
								
							|  | @ -1,3 +1,15 @@ | |||
| Fri Sep  5 18:00:51 2003  GOTOU Yuuzou  <gotoyuzo@notwork.org> | ||||
| 
 | ||||
| 	* ext/openssl/lib/openssl/x509.rb: new method X509::Name::parse. | ||||
| 
 | ||||
| 	* ext/openssl/ossl_digest.c: add ossl_digest_new(). | ||||
| 
 | ||||
| 	* ext/openssl/ossl_digest.h: ditto. | ||||
| 
 | ||||
| 	* ext/openssl/ossl_cipher.c: add ossl_cipher_new(). | ||||
| 
 | ||||
| 	* ext/openssl/ossl_cipher.h: ditto. | ||||
| 
 | ||||
| Fri Sep  5 15:32:04 2003  Nobuyoshi Nakada  <nobu@ruby-lang.org> | ||||
| 
 | ||||
| 	* misc/ruby-mode.el (ruby-font-lock-maybe-here-docs): should not | ||||
|  |  | |||
|  | @ -88,7 +88,7 @@ module OpenSSL | |||
|     end # Extension | ||||
|      | ||||
|     class Attribute | ||||
|       def Attribute::new(arg) | ||||
|       def self.new(arg) | ||||
|         type = arg.class | ||||
|         while type | ||||
|           method = "new_from_#{type.name.downcase}".intern | ||||
|  | @ -128,5 +128,12 @@ module OpenSSL | |||
|       end | ||||
|     end # Attribute | ||||
| 
 | ||||
|     class Name | ||||
|       def self.parse(str) | ||||
|         ary = str.scan(/\s*([^\/,]+)\s*/).collect{|i| i[0].split("=") } | ||||
|         self.new(ary) | ||||
|       end | ||||
|     end # Name | ||||
| 
 | ||||
|   end # X509 | ||||
| end # OpenSSL | ||||
|  |  | |||
|  | @ -30,6 +30,8 @@ VALUE mCipher; | |||
| VALUE cCipher; | ||||
| VALUE eCipherError; | ||||
| 
 | ||||
| static VALUE ossl_cipher_alloc(VALUE klass); | ||||
| 
 | ||||
| /*
 | ||||
|  * PUBLIC | ||||
|  */ | ||||
|  | @ -43,6 +45,21 @@ GetCipherPtr(VALUE obj) | |||
|     return EVP_CIPHER_CTX_cipher(ctx); | ||||
| } | ||||
| 
 | ||||
| VALUE | ||||
| ossl_cipher_new(const EVP_CIPHER *cipher) | ||||
| { | ||||
|     VALUE ret; | ||||
|     EVP_CIPHER_CTX *ctx; | ||||
| 
 | ||||
|     ret = ossl_cipher_alloc(cCipher); | ||||
|     GetCipher(ret, ctx); | ||||
|     EVP_CIPHER_CTX_init(ctx); | ||||
|     if (EVP_CipherInit(ctx, cipher, NULL, NULL, -1) != 1) | ||||
| 	ossl_raise(eCipherError, NULL); | ||||
| 
 | ||||
|     return ret; | ||||
| } | ||||
| 
 | ||||
| /*
 | ||||
|  * PRIVATE | ||||
|  */ | ||||
|  |  | |||
|  | @ -16,6 +16,7 @@ extern VALUE cCipher; | |||
| extern VALUE eCipherError; | ||||
| 
 | ||||
| const EVP_CIPHER *GetCipherPtr(VALUE); | ||||
| VALUE ossl_cipher_new(const EVP_CIPHER *); | ||||
| void Init_ossl_cipher(void); | ||||
| 
 | ||||
| #endif /* _OSSL_CIPHER_H_ */ | ||||
|  |  | |||
|  | @ -28,6 +28,8 @@ VALUE mDigest; | |||
| VALUE cDigest; | ||||
| VALUE eDigestError; | ||||
| 
 | ||||
| static VALUE ossl_digest_alloc(VALUE klass); | ||||
| 
 | ||||
| /*
 | ||||
|  * Public | ||||
|  */ | ||||
|  | @ -41,6 +43,20 @@ GetDigestPtr(VALUE obj) | |||
|     return EVP_MD_CTX_md(ctx); /*== ctx->digest*/ | ||||
| } | ||||
| 
 | ||||
| VALUE | ||||
| ossl_digest_new(const EVP_MD *md) | ||||
| {   | ||||
|     VALUE ret; | ||||
|     EVP_MD_CTX *ctx; | ||||
| 
 | ||||
|     ret = ossl_digest_alloc(cDigest); | ||||
|     GetDigest(ret, ctx); | ||||
|     EVP_MD_CTX_init(ctx); | ||||
|     EVP_DigestInit(ctx, md); | ||||
|     | ||||
|     return ret; | ||||
| } | ||||
| 
 | ||||
| /*
 | ||||
|  * Private | ||||
|  */ | ||||
|  | @ -79,6 +95,7 @@ ossl_digest_initialize(int argc, VALUE *argv, VALUE self) | |||
|     if (!md) { | ||||
| 	ossl_raise(rb_eRuntimeError, "Unsupported digest algorithm (%s).", name); | ||||
|     } | ||||
|     EVP_MD_CTX_init(ctx); | ||||
|     EVP_DigestInit(ctx, md); | ||||
|      | ||||
|     if (!NIL_P(data)) return ossl_digest_update(self, data); | ||||
|  |  | |||
|  | @ -16,6 +16,7 @@ extern VALUE cDigest; | |||
| extern VALUE eDigestError; | ||||
| 
 | ||||
| const EVP_MD *GetDigestPtr(VALUE); | ||||
| VALUE ossl_digest_new(const EVP_MD *); | ||||
| void Init_ossl_digest(void); | ||||
| 
 | ||||
| #endif /* _OSSL_DIGEST_H_ */ | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 gotoyuzo
						gotoyuzo