Skip to content

Commit

Permalink
Adapt to new Provider API
Browse files Browse the repository at this point in the history
  • Loading branch information
emboss committed Nov 23, 2012
1 parent f5c4feb commit 88f0bca
Show file tree
Hide file tree
Showing 10 changed files with 210 additions and 322 deletions.
14 changes: 3 additions & 11 deletions ext/krypt/core/krypt-core.c
Expand Up @@ -20,8 +20,6 @@ ID sKrypt_ID_EACH;
ID sKrypt_ID_EQUALS;
ID sKrypt_ID_SORT_BANG, sKrypt_ID_SORT;

krypt_provider *krypt_default_provider;

VALUE
krypt_to_der(VALUE obj)
{
Expand Down Expand Up @@ -78,9 +76,8 @@ krypt_compute_twos_complement(unsigned char *dest, unsigned char *src, size_t le
void
Init_kryptcore(void)
{
mKrypt = rb_define_module("Krypt");

eKryptError = rb_define_class_under(mKrypt, "KryptError", rb_eStandardError);
mKrypt = rb_path2class("Krypt");
eKryptError = rb_path2class("Krypt::Error");

sKrypt_ID_TO_DER = rb_intern("to_der");
sKrypt_ID_TO_PEM = rb_intern("to_pem");
Expand All @@ -89,15 +86,10 @@ Init_kryptcore(void)
sKrypt_ID_SORT_BANG = rb_intern("sort!");
sKrypt_ID_SORT = rb_intern("sort");

/* Initialize the default provider */
krypt_default_provider = krypt_provider_get_default();
if (!krypt_default_provider) {
rb_raise(rb_eRuntimeError, "Could not initialize default provider");
}

/* Init components */
Init_krypt_io();
Init_krypt_asn1();
Init_krypt_native_provider();
Init_krypt_digest();

/* Init per VM, just a precaution */
Expand Down
7 changes: 2 additions & 5 deletions ext/krypt/core/krypt-core.h
Expand Up @@ -36,7 +36,6 @@ extern "C" {
#endif

extern VALUE mKrypt;

extern VALUE eKryptError;

extern ID sKrypt_ID_TO_DER;
Expand All @@ -47,10 +46,8 @@ extern ID sKrypt_ID_SORT_BANG;
extern ID sKrypt_ID_SORT;

/** krypt-provider interface */
#include "krypt_provider.h"

/* the default provider to be used for low-level primitives */
extern krypt_provider *krypt_default_provider;
#include "krypt-provider.h"
#include "krypt_provider-internal.h"

/** krypt-core headers **/
#include "krypt_error.h"
Expand Down
Expand Up @@ -13,8 +13,14 @@
#ifndef _KRYPT_PROVIDER_H_
#define _KRYPT_PROVIDER_H_


#ifndef _RSTRING_NOT_MODIFIED
#define RSTRING_NOT_MODIFIED 1
#endif

#ifndef RUBY_READONLY_STRING
#define RUBY_READONLY_STRING 1
#endif

#include <ruby.h>

Expand Down Expand Up @@ -47,7 +53,10 @@ struct krypt_provider_st {
krypt_md *(*md_new_name)(krypt_provider *provider, const char *name);
};

extern krypt_provider *krypt_provider_get_default(void);
/* Can be called from within a provider implementation to indicate errors */
void krypt_error_add(const char * format, ...);

/* May be used to register a singleton provider upon initialization */
void krypt_provider_register(krypt_provider *provider);

#endif /* _KRYPT_PROVIDER_H_ */
1 change: 0 additions & 1 deletion ext/krypt/core/krypt_asn1_template.c
Expand Up @@ -269,7 +269,6 @@ krypt_asn1_template_get_callback(VALUE self, VALUE name)
VALUE
krypt_asn1_template_get_callback_choice(VALUE self, VALUE name)
{
VALUE ret = Qnil;
ID ivname = SYM2ID(name);

if (ivname == sKrypt_IV_TAG || ivname == sKrypt_IV_TYPE)
Expand Down

0 comments on commit 88f0bca

Please sign in to comment.