avoid messing with key.type (it causes compiler warnings signed/unsigned mismatch)
Karel Miko
4 years ago
10 | 10 |
if (!RETVAL) croak("FATAL: Newz failed");
|
11 | 11 |
RETVAL->initialized = 0;
|
12 | 12 |
RETVAL->pindex = find_prng("chacha20");
|
13 | |
RETVAL->key.type = -1;
|
14 | 13 |
if (RETVAL->pindex == -1) {
|
15 | 14 |
Safefree(RETVAL);
|
16 | 15 |
croak("FATAL: find_prng('chacha20') failed");
|
|
45 | 44 |
STRLEN data_len=0;
|
46 | 45 |
|
47 | 46 |
data = (unsigned char *)SvPVbyte(key_data, data_len);
|
48 | |
self->key.type = -1;
|
|
47 |
self->initialized = 0;
|
49 | 48 |
rv = ed25519_import(data, (unsigned long)data_len, &self->key);
|
50 | 49 |
if (rv != CRYPT_OK) croak("FATAL: ed25519_import failed: %s", error_to_string(rv));
|
51 | 50 |
self->initialized = 1;
|
|
64 | 63 |
if (SvOK(passwd)) {
|
65 | 64 |
pwd = (unsigned char *)SvPVbyte(passwd, pwd_len);
|
66 | 65 |
}
|
67 | |
self->key.type = -1;
|
|
66 |
self->initialized = 0;
|
68 | 67 |
rv = ed25519_import_pkcs8(data, (unsigned long)data_len, pwd, (unsigned long)pwd_len, &self->key);
|
69 | 68 |
if (rv != CRYPT_OK) croak("FATAL: ed25519_import_pkcs8 failed: %s", error_to_string(rv));
|
70 | 69 |
self->initialized = 1;
|
|
80 | 79 |
STRLEN data_len=0;
|
81 | 80 |
|
82 | 81 |
data = (unsigned char *)SvPVbyte(key_data, data_len);
|
83 | |
self->key.type = -1;
|
|
82 |
self->initialized = 0;
|
84 | 83 |
rv = ed25519_import_x509(data, (unsigned long)data_len, &self->key);
|
85 | 84 |
if (rv != CRYPT_OK) croak("FATAL: ed25519_import_x509 failed: %s", error_to_string(rv));
|
86 | 85 |
self->initialized = 1;
|
|
115 | 114 |
int
|
116 | 115 |
is_private(Crypt::PK::Ed25519 self)
|
117 | 116 |
CODE:
|
118 | |
if (self->initialized == 0 || self->key.type == -1) XSRETURN_UNDEF;
|
|
117 |
if (self->initialized == 0) XSRETURN_UNDEF;
|
119 | 118 |
RETVAL = (self->key.type == PK_PRIVATE) ? 1 : 0;
|
120 | 119 |
OUTPUT:
|
121 | 120 |
RETVAL
|
10 | 10 |
if (!RETVAL) croak("FATAL: Newz failed");
|
11 | 11 |
RETVAL->initialized = 0;
|
12 | 12 |
RETVAL->pindex = find_prng("chacha20");
|
13 | |
RETVAL->key.type = -1;
|
14 | 13 |
if (RETVAL->pindex == -1) {
|
15 | 14 |
Safefree(RETVAL);
|
16 | 15 |
croak("FATAL: find_prng('chacha20') failed");
|
|
45 | 44 |
STRLEN data_len=0;
|
46 | 45 |
|
47 | 46 |
data = (unsigned char *)SvPVbyte(key_data, data_len);
|
48 | |
self->key.type = -1;
|
|
47 |
self->initialized = 0;
|
49 | 48 |
rv = x25519_import(data, (unsigned long)data_len, &self->key);
|
50 | 49 |
if (rv != CRYPT_OK) croak("FATAL: x25519_import failed: %s", error_to_string(rv));
|
51 | 50 |
self->initialized = 1;
|
|
64 | 63 |
if (SvOK(passwd)) {
|
65 | 64 |
pwd = (unsigned char *)SvPVbyte(passwd, pwd_len);
|
66 | 65 |
}
|
67 | |
self->key.type = -1;
|
|
66 |
self->initialized = 0;
|
68 | 67 |
rv = x25519_import_pkcs8(data, (unsigned long)data_len, pwd, (unsigned long)pwd_len, &self->key);
|
69 | 68 |
if (rv != CRYPT_OK) croak("FATAL: x25519_import_pkcs8 failed: %s", error_to_string(rv));
|
70 | 69 |
self->initialized = 1;
|
|
80 | 79 |
STRLEN data_len=0;
|
81 | 80 |
|
82 | 81 |
data = (unsigned char *)SvPVbyte(key_data, data_len);
|
83 | |
self->key.type = -1;
|
|
82 |
self->initialized = 0;
|
84 | 83 |
rv = x25519_import_x509(data, (unsigned long)data_len, &self->key);
|
85 | 84 |
if (rv != CRYPT_OK) croak("FATAL: x25519_import_x509 failed: %s", error_to_string(rv));
|
86 | 85 |
self->initialized = 1;
|
|
115 | 114 |
int
|
116 | 115 |
is_private(Crypt::PK::X25519 self)
|
117 | 116 |
CODE:
|
118 | |
if (self->initialized == 0 || self->key.type == -1) XSRETURN_UNDEF;
|
|
117 |
if (self->initialized == 0) XSRETURN_UNDEF;
|
119 | 118 |
RETVAL = (self->key.type == PK_PRIVATE) ? 1 : 0;
|
120 | 119 |
OUTPUT:
|
121 | 120 |
RETVAL
|