Skip to content

cameronian/ccrypto

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ccrypto

Ccrypto - Common Crypto is the attempt to normalize cryptography API between Ruby and Java, and possibly other runtime supported by Ruby.

It is rooted in Ruby because of its expressiveness.

This gem is mainly provide high level common elements for the implemented runtime to select a proper implementation.

This including all the classes under the lib/ccrypto/configs/ directory. Those are suppose to be parameter pass to the runtime implementation to pick the required implementation under that runtime.

Note this layer is suppose to be barebone native cryptographic algorithm API which should be just thin wrapper around the runtime cryptographic library

Installation

Add this line to your application's Gemfile:

gem 'ccrypto'

# select runtime
# if Ruby runtime backed by OpenSSL
# https://github.com/cameronian/ccrypto-ruby
gem 'ccrypto-ruby'

# or on Java runtime backed by JCE + bouncycastle
# https://github.com/cameronian/ccrypto-java
gem 'ccrypto-java'

And then execute:

$ bundle install

Or install it yourself as:

$ gem install ccrypto
$ gem install ccrypto-ruby # for Ruby runtime
$ gem install ccrypto-java # for Java runtime

Usage

Detail usage refers to spec files in ccrypto-ruby and ccrypto-java.

Development hint

To add a different provider, runtime implementation requires to implement a provider class that has the following methods:

  • All static method
    • provider_name() - returns string indicating the provider
    • algo_instance(*args,&block) - return specific implementation class for the given arguments
    • asn1_engine(*args, &block) - return ASN1 engine from the runtime for given arguments
    • util_instance(*args, &block) - return utilities from the runtime. For example memory buffer, compression engine, data conversion etc.

In the main entry for the runtime implementation, register this provider by calling:

Ccrypto::Provider.instance.register(<provider class>)

That's it.

Refers to Ccrypto ruby runtime or Ccrypto Java runtime for more info.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published