krypt-core 0.0.1 → 0.0.2.rc1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.rdoc +14 -0
- data/Rakefile +88 -0
- data/ext/krypt/core/krypt-core.c +1 -2
- data/ext/krypt/core/krypt-core.h +0 -12
- data/ext/krypt/core/krypt_asn1_parser.c +2 -2
- data/ext/krypt/core/krypt_missing.c +75 -0
- data/ext/krypt/core/krypt_missing.h +5 -0
- data/ext/krypt/core/krypt_pem.c +1 -1
- data/lib/{krypt-core.rb → krypt/core.rb} +8 -1
- metadata +40 -80
- data/ext/krypt/core/Makefile +0 -221
- data/ext/krypt/core/extconf.h +0 -8
- data/ext/krypt/core/krypt-core.o +0 -0
- data/ext/krypt/core/krypt-provider.h +0 -86
- data/ext/krypt/core/krypt_asn1-internal.o +0 -0
- data/ext/krypt/core/krypt_asn1.o +0 -0
- data/ext/krypt/core/krypt_asn1_codec.o +0 -0
- data/ext/krypt/core/krypt_asn1_in_adapter.o +0 -0
- data/ext/krypt/core/krypt_asn1_in_chunked.o +0 -0
- data/ext/krypt/core/krypt_asn1_in_definite.o +0 -0
- data/ext/krypt/core/krypt_asn1_parser.o +0 -0
- data/ext/krypt/core/krypt_asn1_template.o +0 -0
- data/ext/krypt/core/krypt_asn1_template_encoder.o +0 -0
- data/ext/krypt/core/krypt_asn1_template_parser.o +0 -0
- data/ext/krypt/core/krypt_b64.o +0 -0
- data/ext/krypt/core/krypt_digest.c +0 -391
- data/ext/krypt/core/krypt_digest.h +0 -51
- data/ext/krypt/core/krypt_digest.o +0 -0
- data/ext/krypt/core/krypt_error.o +0 -0
- data/ext/krypt/core/krypt_hex.o +0 -0
- data/ext/krypt/core/krypt_io.o +0 -0
- data/ext/krypt/core/krypt_io_in_pem.o +0 -0
- data/ext/krypt/core/krypt_missing.o +0 -0
- data/ext/krypt/core/krypt_pem.o +0 -0
- data/ext/krypt/core/krypt_provider-internal.h +0 -40
- data/ext/krypt/core/krypt_provider.c +0 -136
- data/ext/krypt/core/krypt_provider.o +0 -0
- data/ext/krypt/core/kryptcore.so +0 -0
- data/ext/krypt/core/mkmf.log +0 -130
- data/lib/krypt-core/version.rb +0 -3
- data/lib/kryptcore.so +0 -0
- data/spec/README +0 -2
- data/test/README +0 -2
- data/test/res/certificate.cer +0 -0
- data/test/resources.rb +0 -48
- data/test/scratch.rb +0 -17
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: d544e2c899e9a8eb9b8b526d21086e7c90b5cca8
|
4
|
+
data.tar.gz: 5b4f288dbca756ba15e47631221c8133985b671f
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: e4ec5681d1746859827612c4d7b412e2dbb0b193a3f852822d566a1ecc449c621f92769c313a094736ce2517b5f4f415e383bc36a7e202276ff95a140b839ed4
|
7
|
+
data.tar.gz: 4a1a55537650dfa7c460ab2e95e87bc1de30566b907009caabab6da8d106eda06659a53a64098fd890c940e27915c9d18450dba112ce5083accacf46612e7723
|
data/README.rdoc
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
== krypt-core-c
|
2
|
+
|
3
|
+
The C implementation of the krypt-core API.
|
4
|
+
|
5
|
+
== krypt
|
6
|
+
|
7
|
+
For more information about krypt, please have a
|
8
|
+
look at the project and its wiki at
|
9
|
+
|
10
|
+
https://github.com/krypt/krypt
|
11
|
+
|
12
|
+
Copyright (c) 2011-2013
|
13
|
+
Hiroshi Nakamura <nahi@ruby-lang.org>
|
14
|
+
Martin Bosslet <Martin.Bosslet@gmail.com>
|
data/Rakefile
ADDED
@@ -0,0 +1,88 @@
|
|
1
|
+
require 'rake'
|
2
|
+
require 'rake/extensiontask'
|
3
|
+
require 'rspec/core/rake_task'
|
4
|
+
require 'rdoc/task'
|
5
|
+
|
6
|
+
KRYPT_HOME = '../krypt'
|
7
|
+
|
8
|
+
$config_options = []
|
9
|
+
|
10
|
+
task :default => :compile
|
11
|
+
|
12
|
+
task :clean do
|
13
|
+
rm_f FileList['*.gcov']
|
14
|
+
end
|
15
|
+
|
16
|
+
Rake::ExtensionTask.new('kryptcore') do |ext|
|
17
|
+
ext.ext_dir = "ext/krypt/core"
|
18
|
+
ext.lib_dir = "lib"
|
19
|
+
ext.config_options = $config_options
|
20
|
+
ext.cross_compile = true
|
21
|
+
ext.cross_platform = 'i386-mswin32'
|
22
|
+
end
|
23
|
+
|
24
|
+
RSpec::Core::RakeTask.new('spec-run') do |spec|
|
25
|
+
spec.pattern = File.join(KRYPT_HOME, 'spec/**/*_spec.rb')
|
26
|
+
spec.fail_on_error = false
|
27
|
+
end
|
28
|
+
|
29
|
+
task 'enable-coverage' do
|
30
|
+
# ugly, but we cannot define 2 ExtensionTasks for the same ext.name.
|
31
|
+
$config_options << '-g'
|
32
|
+
end
|
33
|
+
|
34
|
+
task 'enable-profiler' do
|
35
|
+
#to enable profiling run
|
36
|
+
#rake build:profiler -- --with-profiler-dir=<path_to>/gperftools/'
|
37
|
+
$config_options << '-p'
|
38
|
+
end
|
39
|
+
|
40
|
+
desc 'requires gcov and lcov in $PATH'
|
41
|
+
task 'report-coverage' do
|
42
|
+
outdir = File.dirname(Dir['tmp/**/Makefile'].first)
|
43
|
+
curdir = Dir.pwd
|
44
|
+
Dir.chdir(outdir) do
|
45
|
+
sh "lcov -c -i -d . -o kryptcore_base.info"
|
46
|
+
Dir.entries("#{curdir}/ext/krypt/core").each do |f|
|
47
|
+
next if File.directory? f || f !~ /\.[hc]$/
|
48
|
+
# See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=535755
|
49
|
+
sh "gcov -o . #{f}"
|
50
|
+
end
|
51
|
+
sh "lcov -c -d . -o kryptcore.info"
|
52
|
+
sh "lcov -a kryptcore.info -a kryptcore_base.info -o kryptcore_total.info"
|
53
|
+
sh "lcov -r kryptcore_total.info ruby.h --output-file kryptcore_total.info"
|
54
|
+
sh "lcov -r kryptcore_total.info '*include*' --output-file kryptcore_total.info"
|
55
|
+
sh "genhtml -o coverage kryptcore_total.info"
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
desc 'Build ext for coverage and generate a coverage report of spec.'
|
60
|
+
task 'coverage' => ['clean', 'enable-coverage', 'compile', 'spec-run', 'report-coverage']
|
61
|
+
|
62
|
+
desc 'Build and run RSpec code examples'
|
63
|
+
task 'spec' => ['compile', 'spec-run']
|
64
|
+
|
65
|
+
task 'build' => 'compile'
|
66
|
+
|
67
|
+
task 'build-debug' => ['enable-coverage', 'build']
|
68
|
+
task 'build-profiler' => ['enable-profiler', 'build']
|
69
|
+
|
70
|
+
Rake::RDocTask.new("doc") do |rdoc|
|
71
|
+
rdoc.rdoc_dir = 'doc'
|
72
|
+
rdoc.title = "Krypt-Core API"
|
73
|
+
rdoc.rdoc_files.include('README.rdoc')
|
74
|
+
rdoc.rdoc_files.include('ext/**/*')
|
75
|
+
end
|
76
|
+
|
77
|
+
desc 'Ensure that bundle is installed for spec run'
|
78
|
+
task 'bundler-install' do
|
79
|
+
sh 'bundle install'
|
80
|
+
end
|
81
|
+
|
82
|
+
desc 'Run the specs for valgrind analysis'
|
83
|
+
task 'valgrind-spec-run' do
|
84
|
+
sh 'valgrind --suppressions=.ruby.supp --leak-check=full --num-callers=50 --partial-loads-ok=yes --undef-value-errors=no --trace-children=yes bundle exec rake spec'
|
85
|
+
end
|
86
|
+
|
87
|
+
desc 'Build from scratch with debug symbols and run valgrind on a spec run (requires valgrind on PATH)'
|
88
|
+
task 'valgrind' => ['clean', 'build-debug', 'bundler-install', 'valgrind-spec-run']
|
data/ext/krypt/core/krypt-core.c
CHANGED
data/ext/krypt/core/krypt-core.h
CHANGED
@@ -29,8 +29,6 @@
|
|
29
29
|
#if !defined(_KRYPT_CORE_H_)
|
30
30
|
#define _KRYPT_CORE_H_
|
31
31
|
|
32
|
-
#include RUBY_EXTCONF_H
|
33
|
-
|
34
32
|
#if defined(__cplusplus)
|
35
33
|
extern "C" {
|
36
34
|
#endif
|
@@ -38,11 +36,6 @@ extern "C" {
|
|
38
36
|
#define RSTRING_NOT_MODIFIED 1
|
39
37
|
#define RUBY_READONLY_STRING 1
|
40
38
|
|
41
|
-
#include <ruby.h>
|
42
|
-
|
43
|
-
#if defined(HAVE_RUBY_IO_H)
|
44
|
-
#include <ruby/io.h>
|
45
|
-
#endif
|
46
39
|
|
47
40
|
/* This is just a precaution to take remind us of thread safety
|
48
41
|
* issues in case there would be no GVL */
|
@@ -60,17 +53,12 @@ extern ID sKrypt_ID_EQUALS;
|
|
60
53
|
extern ID sKrypt_ID_SORT_BANG;
|
61
54
|
extern ID sKrypt_ID_SORT;
|
62
55
|
|
63
|
-
/** krypt-provider interface */
|
64
|
-
#include "krypt-provider.h"
|
65
|
-
#include "krypt_provider-internal.h"
|
66
|
-
|
67
56
|
/** krypt-core headers **/
|
68
57
|
#include "krypt_error.h"
|
69
58
|
#include "krypt_missing.h"
|
70
59
|
#include "krypt_io.h"
|
71
60
|
#include "krypt_asn1.h"
|
72
61
|
#include "krypt_asn1_template.h"
|
73
|
-
#include "krypt_digest.h"
|
74
62
|
|
75
63
|
VALUE krypt_to_der_if_possible(VALUE obj);
|
76
64
|
VALUE krypt_to_der(VALUE obj);
|
@@ -105,8 +105,8 @@ int_asn1_header_new(binyo_instream *in, krypt_asn1_header *header)
|
|
105
105
|
parsed_header->tag_class = ID2SYM(tag_class);
|
106
106
|
parsed_header->constructed = header->is_constructed ? Qtrue : Qfalse;
|
107
107
|
parsed_header->infinite = header->is_infinite ? Qtrue : Qfalse;
|
108
|
-
parsed_header->length =
|
109
|
-
parsed_header->header_length =
|
108
|
+
parsed_header->length = SIZET2NUM(header->length);
|
109
|
+
parsed_header->header_length = SIZET2NUM(header->tag_len + header->length_len);
|
110
110
|
parsed_header->in = in;
|
111
111
|
parsed_header->header = header;
|
112
112
|
parsed_header->value = Qnil;
|
@@ -28,6 +28,9 @@
|
|
28
28
|
|
29
29
|
#include "krypt-core.h"
|
30
30
|
|
31
|
+
VALUE mKryptHelper;
|
32
|
+
VALUE mKryptHelperString;
|
33
|
+
|
31
34
|
#ifndef HAVE_RB_STR_ENCODE
|
32
35
|
VALUE
|
33
36
|
rb_str_encode(VALUE str, VALUE to, int ecflags, VALUE ecopts)
|
@@ -236,3 +239,75 @@ int krypt_asn1_decode_bignum(uint8_t *bytes, size_t len, VALUE *out)
|
|
236
239
|
}
|
237
240
|
#endif
|
238
241
|
|
242
|
+
static VALUE
|
243
|
+
krypt_helper_string_buffer(VALUE self, VALUE size)
|
244
|
+
{
|
245
|
+
return rb_str_buf_new(NUM2LONG(size));
|
246
|
+
}
|
247
|
+
|
248
|
+
static inline long
|
249
|
+
int_check_and_get_len(VALUE s1, VALUE s2)
|
250
|
+
{
|
251
|
+
long len = RSTRING_LEN(s1);
|
252
|
+
if (RSTRING_LEN(s2) != len) {
|
253
|
+
rb_raise(eKryptError, "String sizes don't match");
|
254
|
+
}
|
255
|
+
return len;
|
256
|
+
}
|
257
|
+
|
258
|
+
static inline void
|
259
|
+
int_xor(char *source1, char *source2, char *target, long len)
|
260
|
+
{
|
261
|
+
int i;
|
262
|
+
for (i = 0; i < len; i++) {
|
263
|
+
target[i] = source1[i] ^ source2[i];
|
264
|
+
}
|
265
|
+
}
|
266
|
+
|
267
|
+
|
268
|
+
static VALUE
|
269
|
+
krypt_helper_string_xor(VALUE self, VALUE s1, VALUE s2)
|
270
|
+
{
|
271
|
+
long len = int_check_and_get_len(s1, s2);
|
272
|
+
char *result = ALLOCA_N(char, len);
|
273
|
+
|
274
|
+
int_xor(RSTRING_PTR(s1), RSTRING_PTR(s2), result, len);
|
275
|
+
return rb_str_new(result, len);
|
276
|
+
}
|
277
|
+
|
278
|
+
static VALUE
|
279
|
+
krypt_helper_string_xor_bang(VALUE self, VALUE s1, VALUE s2)
|
280
|
+
{
|
281
|
+
long len = int_check_and_get_len(s1, s2);
|
282
|
+
#ifndef HAVE_RB_STR_PTR_READONLY
|
283
|
+
char *result = RSTRING_PTR(s1);
|
284
|
+
#else
|
285
|
+
/* Rubinius: We use RUBY_READ_ONLY_STRING, so we can't write to the
|
286
|
+
RSTRING_PTR directly */
|
287
|
+
char *result = rb_str_ptr(s1);
|
288
|
+
#endif
|
289
|
+
int_xor(result, RSTRING_PTR(s2), result, len);
|
290
|
+
return s1;
|
291
|
+
}
|
292
|
+
|
293
|
+
void Init_krypt_helper(void)
|
294
|
+
{
|
295
|
+
#if 0
|
296
|
+
mKrypt = rb_define_module("Krypt"); /* Let RDoc know */
|
297
|
+
#endif
|
298
|
+
|
299
|
+
mKryptHelper = rb_path2class("Krypt::Helper");
|
300
|
+
|
301
|
+
/*
|
302
|
+
* Document-module: Krypt::Helper::String
|
303
|
+
*
|
304
|
+
* Provides features not available in the String class itself to deal
|
305
|
+
* efficiently with binary data.
|
306
|
+
*/
|
307
|
+
mKryptHelperString = rb_define_module_under(mKryptHelper, "String");
|
308
|
+
|
309
|
+
rb_define_module_function(mKryptHelperString, "buffer", krypt_helper_string_buffer, 1);
|
310
|
+
rb_define_module_function(mKryptHelperString, "xor", krypt_helper_string_xor, 2);
|
311
|
+
rb_define_module_function(mKryptHelperString, "xor!", krypt_helper_string_xor_bang, 2);
|
312
|
+
}
|
313
|
+
|
@@ -55,6 +55,11 @@ struct tm *krypt_gmtime_r(const time_t *tp, struct tm *result);
|
|
55
55
|
#define gmtime_r(t, tm) krypt_gmtime_r((t), (tm))
|
56
56
|
#endif
|
57
57
|
|
58
|
+
extern VALUE mKryptHelper;
|
59
|
+
extern VALUE mKryptHelperString;
|
60
|
+
|
61
|
+
void Init_krypt_helper(void);
|
62
|
+
|
58
63
|
int krypt_asn1_encode_bignum(VALUE bignum, uint8_t **out, size_t *len);
|
59
64
|
int krypt_asn1_decode_bignum(uint8_t *bytes, size_t len, VALUE *out);
|
60
65
|
|
data/ext/krypt/core/krypt_pem.c
CHANGED
@@ -118,7 +118,7 @@ krypt_pem_decode(VALUE self, VALUE pem)
|
|
118
118
|
if (krypt_pem_get_last_name(in, &name, &len) == BINYO_ERR) goto error;
|
119
119
|
vname = rb_str_new((const char *) name, len);
|
120
120
|
xfree(name);
|
121
|
-
rb_yield_values(3, der, vname,
|
121
|
+
rb_yield_values(3, der, vname, SIZET2NUM(i++));
|
122
122
|
}
|
123
123
|
krypt_pem_continue_stream(in);
|
124
124
|
}
|
@@ -30,6 +30,13 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
30
30
|
|
31
31
|
=end
|
32
32
|
|
33
|
+
# The order is important - kryptcore.so depends on binyo
|
33
34
|
require 'binyo'
|
34
35
|
require 'kryptcore.so'
|
35
|
-
require 'krypt
|
36
|
+
require 'krypt/provider/openssl'
|
37
|
+
|
38
|
+
begin
|
39
|
+
ossl = Krypt::Provider::OpenSSL.new
|
40
|
+
Krypt::Provider.register(ossl)
|
41
|
+
end
|
42
|
+
|
metadata
CHANGED
@@ -1,48 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: krypt-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.2.rc1
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Hiroshi Nakamura, Martin Bosslet
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2014-02-23 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: binyo
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - '='
|
20
18
|
- !ruby/object:Gem::Version
|
21
|
-
version: 0.0.
|
19
|
+
version: 0.0.2.rc1
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - '='
|
28
25
|
- !ruby/object:Gem::Version
|
29
|
-
version: 0.0.
|
26
|
+
version: 0.0.2.rc1
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: krypt-provider-openssl
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
31
|
- - '='
|
36
32
|
- !ruby/object:Gem::Version
|
37
|
-
version: 0.0.
|
33
|
+
version: 0.0.2.rc1
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
38
|
- - '='
|
44
39
|
- !ruby/object:Gem::Version
|
45
|
-
version: 0.0.
|
40
|
+
version: 0.0.2.rc1
|
46
41
|
description: krypt-core API for C(++)-based Rubies
|
47
42
|
email: Martin.Bosslet@gmail.com
|
48
43
|
executables: []
|
@@ -51,100 +46,65 @@ extensions:
|
|
51
46
|
extra_rdoc_files: []
|
52
47
|
files:
|
53
48
|
- LICENSE
|
54
|
-
-
|
55
|
-
-
|
56
|
-
- ext/krypt/core/krypt_asn1_in_adapter.c
|
57
|
-
- ext/krypt/core/krypt_missing.h
|
58
|
-
- ext/krypt/core/krypt_asn1_in_definite.c
|
59
|
-
- ext/krypt/core/krypt-core.h
|
60
|
-
- ext/krypt/core/Makefile
|
61
|
-
- ext/krypt/core/binyo-io-buffer.h
|
62
|
-
- ext/krypt/core/krypt_asn1.h
|
63
|
-
- ext/krypt/core/krypt_io_in_pem.c
|
64
|
-
- ext/krypt/core/krypt_io_in_pem.o
|
65
|
-
- ext/krypt/core/krypt_hex.c
|
66
|
-
- ext/krypt/core/krypt_asn1_in_definite.o
|
67
|
-
- ext/krypt/core/krypt_asn1_template-internal.h
|
68
|
-
- ext/krypt/core/krypt_provider.c
|
69
|
-
- ext/krypt/core/krypt_b64.o
|
49
|
+
- README.rdoc
|
50
|
+
- Rakefile
|
70
51
|
- ext/krypt/core/binyo-error.h
|
71
|
-
- ext/krypt/core/
|
72
|
-
- ext/krypt/core/extconf.rb
|
73
|
-
- ext/krypt/core/krypt_asn1-internal.c
|
74
|
-
- ext/krypt/core/krypt_pem.o
|
75
|
-
- ext/krypt/core/krypt_hex.h
|
76
|
-
- ext/krypt/core/krypt_digest.h
|
52
|
+
- ext/krypt/core/binyo-io-buffer.h
|
77
53
|
- ext/krypt/core/binyo-io.h
|
78
|
-
- ext/krypt/core/
|
79
|
-
- ext/krypt/core/krypt_error.c
|
80
|
-
- ext/krypt/core/krypt_asn1_template_encoder.c
|
81
|
-
- ext/krypt/core/krypt_asn1_parser.c
|
82
|
-
- ext/krypt/core/krypt_b64.h
|
83
|
-
- ext/krypt/core/krypt_provider.o
|
54
|
+
- ext/krypt/core/extconf.rb
|
84
55
|
- ext/krypt/core/krypt-core.c
|
85
|
-
- ext/krypt/core/
|
86
|
-
- ext/krypt/core/krypt_asn1-internal.
|
56
|
+
- ext/krypt/core/krypt-core.h
|
57
|
+
- ext/krypt/core/krypt_asn1-internal.c
|
87
58
|
- ext/krypt/core/krypt_asn1-internal.h
|
88
|
-
- ext/krypt/core/
|
89
|
-
- ext/krypt/core/
|
90
|
-
- ext/krypt/core/
|
91
|
-
- ext/krypt/core/
|
92
|
-
- ext/krypt/core/
|
93
|
-
- ext/krypt/core/
|
94
|
-
- ext/krypt/core/
|
95
|
-
- ext/krypt/core/
|
96
|
-
- ext/krypt/core/krypt_missing.c
|
97
|
-
- ext/krypt/core/krypt_asn1_template_parser.c
|
59
|
+
- ext/krypt/core/krypt_asn1.c
|
60
|
+
- ext/krypt/core/krypt_asn1.h
|
61
|
+
- ext/krypt/core/krypt_asn1_codec.c
|
62
|
+
- ext/krypt/core/krypt_asn1_in_adapter.c
|
63
|
+
- ext/krypt/core/krypt_asn1_in_chunked.c
|
64
|
+
- ext/krypt/core/krypt_asn1_in_definite.c
|
65
|
+
- ext/krypt/core/krypt_asn1_parser.c
|
66
|
+
- ext/krypt/core/krypt_asn1_template-internal.h
|
98
67
|
- ext/krypt/core/krypt_asn1_template.c
|
99
|
-
- ext/krypt/core/
|
68
|
+
- ext/krypt/core/krypt_asn1_template.h
|
69
|
+
- ext/krypt/core/krypt_asn1_template_encoder.c
|
70
|
+
- ext/krypt/core/krypt_asn1_template_parser.c
|
100
71
|
- ext/krypt/core/krypt_b64-internal.h
|
101
|
-
- ext/krypt/core/kryptcore.so
|
102
|
-
- ext/krypt/core/krypt_hex.o
|
103
|
-
- ext/krypt/core/krypt_asn1_parser.o
|
104
|
-
- ext/krypt/core/krypt_pem.c
|
105
|
-
- ext/krypt/core/extconf.h
|
106
|
-
- ext/krypt/core/krypt_asn1_in_chunked.o
|
107
|
-
- ext/krypt/core/krypt_asn1_codec.c
|
108
|
-
- ext/krypt/core/krypt_missing.o
|
109
72
|
- ext/krypt/core/krypt_b64.c
|
73
|
+
- ext/krypt/core/krypt_b64.h
|
74
|
+
- ext/krypt/core/krypt_error.c
|
110
75
|
- ext/krypt/core/krypt_error.h
|
111
|
-
- ext/krypt/core/krypt_asn1_in_chunked.c
|
112
76
|
- ext/krypt/core/krypt_hex-internal.h
|
113
|
-
- ext/krypt/core/
|
114
|
-
- ext/krypt/core/
|
115
|
-
- ext/krypt/core/
|
116
|
-
- ext/krypt/core/
|
117
|
-
-
|
118
|
-
-
|
119
|
-
-
|
120
|
-
-
|
121
|
-
-
|
122
|
-
- test/README
|
123
|
-
- test/resources.rb
|
124
|
-
- test/res/certificate.cer
|
77
|
+
- ext/krypt/core/krypt_hex.c
|
78
|
+
- ext/krypt/core/krypt_hex.h
|
79
|
+
- ext/krypt/core/krypt_io.c
|
80
|
+
- ext/krypt/core/krypt_io.h
|
81
|
+
- ext/krypt/core/krypt_io_in_pem.c
|
82
|
+
- ext/krypt/core/krypt_missing.c
|
83
|
+
- ext/krypt/core/krypt_missing.h
|
84
|
+
- ext/krypt/core/krypt_pem.c
|
85
|
+
- lib/krypt/core.rb
|
125
86
|
homepage: https://github.com/krypt/krypt-core-c
|
126
87
|
licenses:
|
127
88
|
- MIT
|
89
|
+
metadata: {}
|
128
90
|
post_install_message:
|
129
91
|
rdoc_options: []
|
130
92
|
require_paths:
|
131
93
|
- lib
|
132
94
|
required_ruby_version: !ruby/object:Gem::Requirement
|
133
|
-
none: false
|
134
95
|
requirements:
|
135
|
-
- -
|
96
|
+
- - ">="
|
136
97
|
- !ruby/object:Gem::Version
|
137
98
|
version: 1.9.3
|
138
99
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
139
|
-
none: false
|
140
100
|
requirements:
|
141
|
-
- -
|
101
|
+
- - ">"
|
142
102
|
- !ruby/object:Gem::Version
|
143
|
-
version:
|
103
|
+
version: 1.3.1
|
144
104
|
requirements: []
|
145
105
|
rubyforge_project:
|
146
|
-
rubygems_version:
|
106
|
+
rubygems_version: 2.2.0
|
147
107
|
signing_key:
|
148
|
-
specification_version:
|
108
|
+
specification_version: 4
|
149
109
|
summary: C implementation of the krypt-core API
|
150
110
|
test_files: []
|