oxidize: Add pub mod directives and run rustfmt

Makes all translated files part of the crate, and then runs rustfmt
on all of them, hopefully making them marginally more bearable.
This commit is contained in:
Tony Arcieri
2019-08-10 14:53:25 -07:00
parent 5e0e0fe0c2
commit 4cd59cb992
5 changed files with 4031 additions and 4101 deletions
+17 -19
View File
@@ -56,23 +56,22 @@ pub struct Struct1 {
} }
impl Clone for Struct1 { impl Clone for Struct1 {
fn clone(&self) -> Self { *self } fn clone(&self) -> Self {
*self
}
} }
static mut errors static mut errors: *const Struct1 = Enum2::YKPIV_OK as (*const Struct1);
: *const Struct1
= Enum2::YKPIV_OK as (*const Struct1);
#[no_mangle] #[no_mangle]
pub unsafe extern fn ykpiv_strerror(mut err : Enum2) -> *const u8 { pub unsafe extern "C" fn ykpiv_strerror(mut err: Enum2) -> *const u8 {
static mut unknown static mut unknown: *const u8 = (*b"Unknown ykpiv error\0").as_ptr();
: *const u8
= (*b"Unknown ykpiv error\0").as_ptr();
let mut p: *const u8; let mut p: *const u8;
if -(err as (i32)) < 0i32 || -(err as (i32)) >= ::std::mem::size_of::<*const Struct1>( if -(err as (i32)) < 0i32
).wrapping_div( || -(err as (i32))
::std::mem::size_of::<Struct1>() >= ::std::mem::size_of::<*const Struct1>()
) as (i32) { .wrapping_div(::std::mem::size_of::<Struct1>()) as (i32)
{
unknown unknown
} else { } else {
p = (*errors.offset(-(err as (i32)) as (isize))).description; p = (*errors.offset(-(err as (i32)) as (isize))).description;
@@ -84,13 +83,12 @@ pub unsafe extern fn ykpiv_strerror(mut err : Enum2) -> *const u8 {
} }
#[no_mangle] #[no_mangle]
pub unsafe extern fn ykpiv_strerror_name( pub unsafe extern "C" fn ykpiv_strerror_name(mut err: Enum2) -> *const u8 {
mut err : Enum2 if -(err as (i32)) < 0i32
) -> *const u8 { || -(err as (i32))
if -(err as (i32)) < 0i32 || -(err as (i32)) >= ::std::mem::size_of::<*const Struct1>( >= ::std::mem::size_of::<*const Struct1>()
).wrapping_div( .wrapping_div(::std::mem::size_of::<Struct1>()) as (i32)
::std::mem::size_of::<Struct1>() {
) as (i32) {
0i32 as (*mut ::std::os::raw::c_void) as (*const u8) 0i32 as (*mut ::std::os::raw::c_void) as (*const u8)
} else { } else {
(*errors.offset(-(err as (i32)) as (isize))).name (*errors.offset(-(err as (i32)) as (isize))).name
+147 -164
View File
@@ -25,19 +25,17 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
extern { extern "C" {
fn DES_ecb3_encrypt( fn DES_ecb3_encrypt(
input: *mut [u8; 8], input: *mut [u8; 8],
output: *mut [u8; 8], output: *mut [u8; 8],
ks1: *mut DES_ks, ks1: *mut DES_ks,
ks2: *mut DES_ks, ks2: *mut DES_ks,
ks3: *mut DES_ks, ks3: *mut DES_ks,
enc : i32 enc: i32,
); );
fn DES_is_weak_key(key: *mut [u8; 8]) -> i32; fn DES_is_weak_key(key: *mut [u8; 8]) -> i32;
fn DES_set_key_unchecked( fn DES_set_key_unchecked(key: *mut [u8; 8], schedule: *mut DES_ks);
key : *mut [u8; 8], schedule : *mut DES_ks
);
fn PKCS5_PBKDF2_HMAC_SHA1( fn PKCS5_PBKDF2_HMAC_SHA1(
pass: *const u8, pass: *const u8,
passlen: i32, passlen: i32,
@@ -45,7 +43,7 @@ extern {
saltlen: i32, saltlen: i32,
iter: i32, iter: i32,
keylen: i32, keylen: i32,
out : *mut u8 out: *mut u8,
) -> i32; ) -> i32;
fn RAND_bytes(buf: *mut u8, num: i32) -> i32; fn RAND_bytes(buf: *mut u8, num: i32) -> i32;
static mut _DefaultRuneLocale: Struct1; static mut _DefaultRuneLocale: Struct1;
@@ -55,40 +53,34 @@ extern {
fn __toupper(arg1: i32) -> i32; fn __toupper(arg1: i32) -> i32;
fn fclose(arg1: *mut __sFILE) -> i32; fn fclose(arg1: *mut __sFILE) -> i32;
fn feof(arg1: *mut __sFILE) -> i32; fn feof(arg1: *mut __sFILE) -> i32;
fn fgets( fn fgets(arg1: *mut u8, arg2: i32, arg3: *mut __sFILE) -> *mut u8;
arg1 : *mut u8, arg2 : i32, arg3 : *mut __sFILE fn fopen(__filename: *const u8, __mode: *const u8) -> *mut __sFILE;
) -> *mut u8;
fn fopen(
__filename : *const u8, __mode : *const u8
) -> *mut __sFILE;
fn free(arg1: *mut ::std::os::raw::c_void); fn free(arg1: *mut ::std::os::raw::c_void);
fn getenv(arg1: *const u8) -> *mut u8; fn getenv(arg1: *const u8) -> *mut u8;
fn malloc(__size: usize) -> *mut ::std::os::raw::c_void; fn malloc(__size: usize) -> *mut ::std::os::raw::c_void;
fn memcpy( fn memcpy(
__dst: *mut ::std::os::raw::c_void, __dst: *mut ::std::os::raw::c_void,
__src: *const ::std::os::raw::c_void, __src: *const ::std::os::raw::c_void,
__n : usize __n: usize,
) -> *mut ::std::os::raw::c_void; ) -> *mut ::std::os::raw::c_void;
fn memset( fn memset(
__b : *mut ::std::os::raw::c_void, __c : i32, __len : usize __b: *mut ::std::os::raw::c_void,
__c: i32,
__len: usize,
) -> *mut ::std::os::raw::c_void; ) -> *mut ::std::os::raw::c_void;
fn snprintf( fn snprintf(__str: *mut u8, __size: usize, __format: *const u8, ...) -> i32;
__str : *mut u8, __size : usize, __format : *const u8, ...
) -> i32;
fn sscanf(arg1: *const u8, arg2: *const u8, ...) -> i32; fn sscanf(arg1: *const u8, arg2: *const u8, ...) -> i32;
fn strcasecmp(arg1: *const u8, arg2: *const u8) -> i32; fn strcasecmp(arg1: *const u8, arg2: *const u8) -> i32;
fn strcmp(__s1: *const u8, __s2: *const u8) -> i32; fn strcmp(__s1: *const u8, __s2: *const u8) -> i32;
fn strlen(__s: *const u8) -> usize; fn strlen(__s: *const u8) -> usize;
} }
enum Union6 { enum Union6 {}
}
enum __sFILEX { enum __sFILEX {}
}
#[no_mangle] #[no_mangle]
pub unsafe extern fn isascii(mut _c : i32) -> i32 { pub unsafe extern "C" fn isascii(mut _c: i32) -> i32 {
(_c & !0x7fi32 == 0i32) as (i32) (_c & !0x7fi32 == 0i32) as (i32)
} }
@@ -102,7 +94,9 @@ pub struct Struct3 {
} }
impl Clone for Struct3 { impl Clone for Struct3 {
fn clone(&self) -> Self { *self } fn clone(&self) -> Self {
*self
}
} }
#[derive(Copy)] #[derive(Copy)]
@@ -113,7 +107,9 @@ pub struct Struct2 {
} }
impl Clone for Struct2 { impl Clone for Struct2 {
fn clone(&self) -> Self { *self } fn clone(&self) -> Self {
*self
}
} }
#[derive(Copy)] #[derive(Copy)]
@@ -124,7 +120,9 @@ pub struct Struct4 {
} }
impl Clone for Struct4 { impl Clone for Struct4 {
fn clone(&self) -> Self { *self } fn clone(&self) -> Self {
*self
}
} }
#[derive(Copy)] #[derive(Copy)]
@@ -132,8 +130,8 @@ impl Clone for Struct4 {
pub struct Struct1 { pub struct Struct1 {
pub __magic: [u8; 8], pub __magic: [u8; 8],
pub __encoding: [u8; 32], pub __encoding: [u8; 32],
pub __sgetrune : unsafe extern fn(*const u8, usize, *mut *const u8) -> i32, pub __sgetrune: unsafe extern "C" fn(*const u8, usize, *mut *const u8) -> i32,
pub __sputrune : unsafe extern fn(i32, *mut u8, usize, *mut *mut u8) -> i32, pub __sputrune: unsafe extern "C" fn(i32, *mut u8, usize, *mut *mut u8) -> i32,
pub __invalid_rune: i32, pub __invalid_rune: i32,
pub __runetype: [u32; 256], pub __runetype: [u32; 256],
pub __maplower: [i32; 256], pub __maplower: [i32; 256],
@@ -148,33 +146,31 @@ pub struct Struct1 {
} }
impl Clone for Struct1 { impl Clone for Struct1 {
fn clone(&self) -> Self { *self } fn clone(&self) -> Self {
*self
}
} }
#[no_mangle] #[no_mangle]
pub unsafe extern fn __istype(mut _c : i32, mut _f : usize) -> i32 { pub unsafe extern "C" fn __istype(mut _c: i32, mut _f: usize) -> i32 {
if isascii(_c) != 0 { if isascii(_c) != 0 {
!(_DefaultRuneLocale.__runetype[ !(_DefaultRuneLocale.__runetype[_c as (usize)] as (usize) & _f == 0) as (i32)
_c as (usize)
] as (usize) & _f == 0) as (i32)
} else { } else {
!(__maskrune(_c, _f) == 0) as (i32) !(__maskrune(_c, _f) == 0) as (i32)
} }
} }
#[no_mangle] #[no_mangle]
pub unsafe extern fn __isctype(mut _c : i32, mut _f : usize) -> i32 { pub unsafe extern "C" fn __isctype(mut _c: i32, mut _f: usize) -> i32 {
if _c < 0i32 || _c >= 256i32 { if _c < 0i32 || _c >= 256i32 {
0i32 0i32
} else { } else {
!(_DefaultRuneLocale.__runetype[ !(_DefaultRuneLocale.__runetype[_c as (usize)] as (usize) & _f == 0) as (i32)
_c as (usize)
] as (usize) & _f == 0) as (i32)
} }
} }
#[no_mangle] #[no_mangle]
pub unsafe extern fn __wcwidth(mut _c : i32) -> i32 { pub unsafe extern "C" fn __wcwidth(mut _c: i32) -> i32 {
let mut _x: u32; let mut _x: u32;
if _c == 0i32 { if _c == 0i32 {
0i32 0i32
@@ -191,106 +187,112 @@ pub unsafe extern fn __wcwidth(mut _c : i32) -> i32 {
} }
#[no_mangle] #[no_mangle]
pub unsafe extern fn isalnum(mut _c : i32) -> i32 { pub unsafe extern "C" fn isalnum(mut _c: i32) -> i32 {
__istype(_c, (0x100isize | 0x400isize) as (usize)) __istype(_c, (0x100isize | 0x400isize) as (usize))
} }
#[no_mangle] #[no_mangle]
pub unsafe extern fn isalpha(mut _c : i32) -> i32 { pub unsafe extern "C" fn isalpha(mut _c: i32) -> i32 {
__istype(_c, 0x100usize) __istype(_c, 0x100usize)
} }
#[no_mangle] #[no_mangle]
pub unsafe extern fn isblank(mut _c : i32) -> i32 { pub unsafe extern "C" fn isblank(mut _c: i32) -> i32 {
__istype(_c, 0x20000usize) __istype(_c, 0x20000usize)
} }
#[no_mangle] #[no_mangle]
pub unsafe extern fn iscntrl(mut _c : i32) -> i32 { pub unsafe extern "C" fn iscntrl(mut _c: i32) -> i32 {
__istype(_c, 0x200usize) __istype(_c, 0x200usize)
} }
#[no_mangle] #[no_mangle]
pub unsafe extern fn isdigit(mut _c : i32) -> i32 { pub unsafe extern "C" fn isdigit(mut _c: i32) -> i32 {
__isctype(_c, 0x400usize) __isctype(_c, 0x400usize)
} }
#[no_mangle] #[no_mangle]
pub unsafe extern fn isgraph(mut _c : i32) -> i32 { pub unsafe extern "C" fn isgraph(mut _c: i32) -> i32 {
__istype(_c, 0x800usize) __istype(_c, 0x800usize)
} }
#[no_mangle] #[no_mangle]
pub unsafe extern fn islower(mut _c : i32) -> i32 { pub unsafe extern "C" fn islower(mut _c: i32) -> i32 {
__istype(_c, 0x1000usize) __istype(_c, 0x1000usize)
} }
#[no_mangle] #[no_mangle]
pub unsafe extern fn isprint(mut _c : i32) -> i32 { pub unsafe extern "C" fn isprint(mut _c: i32) -> i32 {
__istype(_c, 0x40000usize) __istype(_c, 0x40000usize)
} }
#[no_mangle] #[no_mangle]
pub unsafe extern fn ispunct(mut _c : i32) -> i32 { pub unsafe extern "C" fn ispunct(mut _c: i32) -> i32 {
__istype(_c, 0x2000usize) __istype(_c, 0x2000usize)
} }
#[no_mangle] #[no_mangle]
pub unsafe extern fn isspace(mut _c : i32) -> i32 { pub unsafe extern "C" fn isspace(mut _c: i32) -> i32 {
__istype(_c, 0x4000usize) __istype(_c, 0x4000usize)
} }
#[no_mangle] #[no_mangle]
pub unsafe extern fn isupper(mut _c : i32) -> i32 { pub unsafe extern "C" fn isupper(mut _c: i32) -> i32 {
__istype(_c, 0x8000usize) __istype(_c, 0x8000usize)
} }
#[no_mangle] #[no_mangle]
pub unsafe extern fn isxdigit(mut _c : i32) -> i32 { pub unsafe extern "C" fn isxdigit(mut _c: i32) -> i32 {
__isctype(_c, 0x10000usize) __isctype(_c, 0x10000usize)
} }
#[no_mangle] #[no_mangle]
pub unsafe extern fn toascii(mut _c : i32) -> i32 { _c & 0x7fi32 } pub unsafe extern "C" fn toascii(mut _c: i32) -> i32 {
_c & 0x7fi32
}
#[no_mangle] #[no_mangle]
pub unsafe extern fn tolower(mut _c : i32) -> i32 { __tolower(_c) } pub unsafe extern "C" fn tolower(mut _c: i32) -> i32 {
__tolower(_c)
}
#[no_mangle] #[no_mangle]
pub unsafe extern fn toupper(mut _c : i32) -> i32 { __toupper(_c) } pub unsafe extern "C" fn toupper(mut _c: i32) -> i32 {
__toupper(_c)
}
#[no_mangle] #[no_mangle]
pub unsafe extern fn digittoint(mut _c : i32) -> i32 { pub unsafe extern "C" fn digittoint(mut _c: i32) -> i32 {
__maskrune(_c, 0xfusize) __maskrune(_c, 0xfusize)
} }
#[no_mangle] #[no_mangle]
pub unsafe extern fn ishexnumber(mut _c : i32) -> i32 { pub unsafe extern "C" fn ishexnumber(mut _c: i32) -> i32 {
__istype(_c, 0x10000usize) __istype(_c, 0x10000usize)
} }
#[no_mangle] #[no_mangle]
pub unsafe extern fn isideogram(mut _c : i32) -> i32 { pub unsafe extern "C" fn isideogram(mut _c: i32) -> i32 {
__istype(_c, 0x80000usize) __istype(_c, 0x80000usize)
} }
#[no_mangle] #[no_mangle]
pub unsafe extern fn isnumber(mut _c : i32) -> i32 { pub unsafe extern "C" fn isnumber(mut _c: i32) -> i32 {
__istype(_c, 0x400usize) __istype(_c, 0x400usize)
} }
#[no_mangle] #[no_mangle]
pub unsafe extern fn isphonogram(mut _c : i32) -> i32 { pub unsafe extern "C" fn isphonogram(mut _c: i32) -> i32 {
__istype(_c, 0x200000usize) __istype(_c, 0x200000usize)
} }
#[no_mangle] #[no_mangle]
pub unsafe extern fn isrune(mut _c : i32) -> i32 { pub unsafe extern "C" fn isrune(mut _c: i32) -> i32 {
__istype(_c, 0xfffffff0usize) __istype(_c, 0xfffffff0usize)
} }
#[no_mangle] #[no_mangle]
pub unsafe extern fn isspecial(mut _c : i32) -> i32 { pub unsafe extern "C" fn isspecial(mut _c: i32) -> i32 {
__istype(_c, 0x100000usize) __istype(_c, 0x100000usize)
} }
@@ -302,7 +304,9 @@ pub struct __sbuf {
} }
impl Clone for __sbuf { impl Clone for __sbuf {
fn clone(&self) -> Self { *self } fn clone(&self) -> Self {
*self
}
} }
#[derive(Copy)] #[derive(Copy)]
@@ -316,10 +320,10 @@ pub struct __sFILE {
pub _bf: __sbuf, pub _bf: __sbuf,
pub _lbfsize: i32, pub _lbfsize: i32,
pub _cookie: *mut ::std::os::raw::c_void, pub _cookie: *mut ::std::os::raw::c_void,
pub _close : unsafe extern fn(*mut ::std::os::raw::c_void) -> i32, pub _close: unsafe extern "C" fn(*mut ::std::os::raw::c_void) -> i32,
pub _read : unsafe extern fn(*mut ::std::os::raw::c_void, *mut u8, i32) -> i32, pub _read: unsafe extern "C" fn(*mut ::std::os::raw::c_void, *mut u8, i32) -> i32,
pub _seek : unsafe extern fn(*mut ::std::os::raw::c_void, isize, i32) -> isize, pub _seek: unsafe extern "C" fn(*mut ::std::os::raw::c_void, isize, i32) -> isize,
pub _write : unsafe extern fn(*mut ::std::os::raw::c_void, *const u8, i32) -> i32, pub _write: unsafe extern "C" fn(*mut ::std::os::raw::c_void, *const u8, i32) -> i32,
pub _ub: __sbuf, pub _ub: __sbuf,
pub _extra: *mut __sFILEX, pub _extra: *mut __sFILEX,
pub _ur: i32, pub _ur: i32,
@@ -331,21 +335,22 @@ pub struct __sFILE {
} }
impl Clone for __sFILE { impl Clone for __sFILE {
fn clone(&self) -> Self { *self } fn clone(&self) -> Self {
*self
}
} }
#[no_mangle] #[no_mangle]
pub unsafe extern fn __sputc( pub unsafe extern "C" fn __sputc(mut _c: i32, mut _p: *mut __sFILE) -> i32 {
mut _c : i32, mut _p : *mut __sFILE
) -> i32 {
if { if {
(*_p)._w = (*_p)._w - 1; (*_p)._w = (*_p)._w - 1;
(*_p)._w (*_p)._w
} >= 0i32 || (*_p)._w >= (*_p)._lbfsize && (_c as (u8) as (i32) != b'\n' as (i32)) { } >= 0i32
|| (*_p)._w >= (*_p)._lbfsize && (_c as (u8) as (i32) != b'\n' as (i32))
{
({ ({
let _rhs = _c; let _rhs = _c;
let _lhs let _lhs = &mut *{
= &mut *{
let _old = (*_p)._p; let _old = (*_p)._p;
(*_p)._p = (*_p)._p.offset(1isize); (*_p)._p = (*_p)._p.offset(1isize);
_old _old
@@ -359,9 +364,7 @@ pub unsafe extern fn __sputc(
} }
#[no_mangle] #[no_mangle]
pub static mut szLOG_SOURCE pub static mut szLOG_SOURCE: *const u8 = (*b"YubiKey PIV Library\0").as_ptr();
: *const u8
= (*b"YubiKey PIV Library\0").as_ptr();
#[derive(Clone, Copy)] #[derive(Clone, Copy)]
#[repr(i32)] #[repr(i32)]
@@ -380,7 +383,9 @@ pub struct DES_ks {
} }
impl Clone for DES_ks { impl Clone for DES_ks {
fn clone(&self) -> Self { *self } fn clone(&self) -> Self {
*self
}
} }
#[derive(Copy)] #[derive(Copy)]
@@ -392,15 +397,17 @@ pub struct des_key {
} }
impl Clone for des_key { impl Clone for des_key {
fn clone(&self) -> Self { *self } fn clone(&self) -> Self {
*self
}
} }
#[no_mangle] #[no_mangle]
pub unsafe extern fn des_import_key( pub unsafe extern "C" fn des_import_key(
type_: i32, type_: i32,
mut keyraw: *const u8, mut keyraw: *const u8,
keyrawlen: usize, keyrawlen: usize,
mut key : *mut *mut des_key mut key: *mut *mut des_key,
) -> Enum5 { ) -> Enum5 {
let mut _currentBlock; let mut _currentBlock;
let mut rc: Enum5 = Enum5::DES_OK; let mut rc: Enum5 = Enum5::DES_OK;
@@ -425,46 +432,44 @@ pub unsafe extern fn des_import_key(
} else if { } else if {
*key = malloc(::std::mem::size_of::<des_key>()) as (*mut des_key); *key = malloc(::std::mem::size_of::<des_key>()) as (*mut des_key);
*key *key
}.is_null( }
) { .is_null()
{
rc = Enum5::DES_MEMORY_ERROR; rc = Enum5::DES_MEMORY_ERROR;
_currentBlock = 15; _currentBlock = 15;
} else { } else {
memset( memset(
*key as (*mut ::std::os::raw::c_void), *key as (*mut ::std::os::raw::c_void),
0i32, 0i32,
::std::mem::size_of::<des_key>() ::std::mem::size_of::<des_key>(),
); );
memcpy( memcpy(
key_tmp.as_mut_ptr() as (*mut ::std::os::raw::c_void), key_tmp.as_mut_ptr() as (*mut ::std::os::raw::c_void),
keyraw as (*const ::std::os::raw::c_void), keyraw as (*const ::std::os::raw::c_void),
cb_keysize cb_keysize,
); );
DES_set_key_unchecked( DES_set_key_unchecked(
&mut key_tmp as (*mut [u8; 8]), &mut key_tmp as (*mut [u8; 8]),
&mut (**key).ks1 as (*mut DES_ks) &mut (**key).ks1 as (*mut DES_ks),
); );
memcpy( memcpy(
key_tmp.as_mut_ptr() as (*mut ::std::os::raw::c_void), key_tmp.as_mut_ptr() as (*mut ::std::os::raw::c_void),
keyraw.offset( keyraw.offset(cb_keysize as (isize)) as (*const ::std::os::raw::c_void),
cb_keysize as (isize) cb_keysize,
) as (*const ::std::os::raw::c_void),
cb_keysize
); );
DES_set_key_unchecked( DES_set_key_unchecked(
&mut key_tmp as (*mut [u8; 8]), &mut key_tmp as (*mut [u8; 8]),
&mut (**key).ks2 as (*mut DES_ks) &mut (**key).ks2 as (*mut DES_ks),
); );
memcpy( memcpy(
key_tmp.as_mut_ptr() as (*mut ::std::os::raw::c_void), key_tmp.as_mut_ptr() as (*mut ::std::os::raw::c_void),
keyraw.offset( keyraw.offset(2usize.wrapping_mul(cb_keysize) as (isize))
2usize.wrapping_mul(cb_keysize) as (isize) as (*const ::std::os::raw::c_void),
) as (*const ::std::os::raw::c_void), cb_keysize,
cb_keysize
); );
DES_set_key_unchecked( DES_set_key_unchecked(
&mut key_tmp as (*mut [u8; 8]), &mut key_tmp as (*mut [u8; 8]),
&mut (**key).ks3 as (*mut DES_ks) &mut (**key).ks3 as (*mut DES_ks),
); );
_currentBlock = 17; _currentBlock = 17;
} }
@@ -482,7 +487,7 @@ pub unsafe extern fn des_import_key(
} }
#[no_mangle] #[no_mangle]
pub unsafe extern fn des_destroy_key(mut key : *mut des_key) -> Enum5 { pub unsafe extern "C" fn des_destroy_key(mut key: *mut des_key) -> Enum5 {
if !key.is_null() { if !key.is_null() {
free(key as (*mut ::std::os::raw::c_void)); free(key as (*mut ::std::os::raw::c_void));
} }
@@ -490,16 +495,15 @@ pub unsafe extern fn des_destroy_key(mut key : *mut des_key) -> Enum5 {
} }
#[no_mangle] #[no_mangle]
pub unsafe extern fn des_encrypt( pub unsafe extern "C" fn des_encrypt(
mut key: *mut des_key, mut key: *mut des_key,
mut in_: *const u8, mut in_: *const u8,
inlen: usize, inlen: usize,
mut out: *mut u8, mut out: *mut u8,
mut outlen : *mut usize mut outlen: *mut usize,
) -> Enum5 { ) -> Enum5 {
let mut rc: Enum5 = Enum5::DES_OK; let mut rc: Enum5 = Enum5::DES_OK;
if key.is_null() || outlen.is_null( if key.is_null() || outlen.is_null() || *outlen < inlen || in_.is_null() || out.is_null() {
) || *outlen < inlen || in_.is_null() || out.is_null() {
rc = Enum5::DES_INVALID_PARAMETER; rc = Enum5::DES_INVALID_PARAMETER;
} else { } else {
DES_ecb3_encrypt( DES_ecb3_encrypt(
@@ -508,23 +512,22 @@ pub unsafe extern fn des_encrypt(
&mut (*key).ks1 as (*mut DES_ks), &mut (*key).ks1 as (*mut DES_ks),
&mut (*key).ks2 as (*mut DES_ks), &mut (*key).ks2 as (*mut DES_ks),
&mut (*key).ks3 as (*mut DES_ks), &mut (*key).ks3 as (*mut DES_ks),
1i32 1i32,
); );
} }
rc rc
} }
#[no_mangle] #[no_mangle]
pub unsafe extern fn des_decrypt( pub unsafe extern "C" fn des_decrypt(
mut key: *mut des_key, mut key: *mut des_key,
mut in_: *const u8, mut in_: *const u8,
inlen: usize, inlen: usize,
mut out: *mut u8, mut out: *mut u8,
mut outlen : *mut usize mut outlen: *mut usize,
) -> Enum5 { ) -> Enum5 {
let mut rc: Enum5 = Enum5::DES_OK; let mut rc: Enum5 = Enum5::DES_OK;
if key.is_null() || outlen.is_null( if key.is_null() || outlen.is_null() || *outlen < inlen || in_.is_null() || out.is_null() {
) || *outlen < inlen || in_.is_null() || out.is_null() {
rc = Enum5::DES_INVALID_PARAMETER; rc = Enum5::DES_INVALID_PARAMETER;
} else { } else {
DES_ecb3_encrypt( DES_ecb3_encrypt(
@@ -533,16 +536,14 @@ pub unsafe extern fn des_decrypt(
&mut (*key).ks1 as (*mut DES_ks), &mut (*key).ks1 as (*mut DES_ks),
&mut (*key).ks2 as (*mut DES_ks), &mut (*key).ks2 as (*mut DES_ks),
&mut (*key).ks3 as (*mut DES_ks), &mut (*key).ks3 as (*mut DES_ks),
0i32 0i32,
); );
} }
rc rc
} }
#[no_mangle] #[no_mangle]
pub unsafe extern fn yk_des_is_weak_key( pub unsafe extern "C" fn yk_des_is_weak_key(mut key: *const u8, cb_key: usize) -> bool {
mut key : *const u8, cb_key : usize
) -> bool {
cb_key; cb_key;
DES_is_weak_key(key as (*mut [u8; 8])) != 0 DES_is_weak_key(key as (*mut [u8; 8])) != 0
} }
@@ -555,9 +556,7 @@ pub enum Enum7 {
} }
#[no_mangle] #[no_mangle]
pub unsafe extern fn _ykpiv_prng_generate( pub unsafe extern "C" fn _ykpiv_prng_generate(mut buffer: *mut u8, cb_req: usize) -> Enum7 {
mut buffer : *mut u8, cb_req : usize
) -> Enum7 {
let mut rc: Enum7 = Enum7::PRNG_OK; let mut rc: Enum7 = Enum7::PRNG_OK;
if -1i32 == RAND_bytes(buffer, cb_req as (i32)) { if -1i32 == RAND_bytes(buffer, cb_req as (i32)) {
rc = Enum7::PRNG_GENERAL_ERROR; rc = Enum7::PRNG_GENERAL_ERROR;
@@ -573,14 +572,14 @@ pub enum Enum8 {
} }
#[no_mangle] #[no_mangle]
pub unsafe extern fn pkcs5_pbkdf2_sha1( pub unsafe extern "C" fn pkcs5_pbkdf2_sha1(
mut password: *const u8, mut password: *const u8,
cb_password: usize, cb_password: usize,
mut salt: *const u8, mut salt: *const u8,
cb_salt: usize, cb_salt: usize,
mut iterations: usize, mut iterations: usize,
mut key: *const u8, mut key: *const u8,
cb_key : usize cb_key: usize,
) -> Enum8 { ) -> Enum8 {
let mut rc: Enum8 = Enum8::PKCS5_OK; let mut rc: Enum8 = Enum8::PKCS5_OK;
PKCS5_PBKDF2_HMAC_SHA1( PKCS5_PBKDF2_HMAC_SHA1(
@@ -590,17 +589,17 @@ pub unsafe extern fn pkcs5_pbkdf2_sha1(
cb_salt as (i32), cb_salt as (i32),
iterations as (i32), iterations as (i32),
cb_key as (i32), cb_key as (i32),
key as (*mut u8) key as (*mut u8),
); );
rc rc
} }
#[no_mangle] #[no_mangle]
pub unsafe extern fn _strip_ws(mut sz : *mut u8) -> *mut u8 { pub unsafe extern "C" fn _strip_ws(mut sz: *mut u8) -> *mut u8 {
let mut psz_head: *mut u8 = sz; let mut psz_head: *mut u8 = sz;
let mut psz_tail let mut psz_tail: *mut u8 = sz
: *mut u8 .offset(strlen(sz as (*const u8)) as (isize))
= sz.offset(strlen(sz as (*const u8)) as (isize)).offset(-1isize); .offset(-1isize);
'loop1: loop { 'loop1: loop {
if isspace(*psz_head as (i32)) == 0 { if isspace(*psz_head as (i32)) == 0 {
break; break;
@@ -636,19 +635,17 @@ pub struct _setting_bool_t {
} }
impl Clone for _setting_bool_t { impl Clone for _setting_bool_t {
fn clone(&self) -> Self { *self } fn clone(&self) -> Self {
*self
}
} }
#[no_mangle] #[no_mangle]
pub unsafe extern fn _get_bool_config( pub unsafe extern "C" fn _get_bool_config(mut sz_setting: *const u8) -> _setting_bool_t {
mut sz_setting : *const u8
) -> _setting_bool_t {
let mut _currentBlock; let mut _currentBlock;
let mut setting let mut setting: _setting_bool_t = _setting_bool_t {
: _setting_bool_t
= _setting_bool_t {
value: false, value: false,
source: _setting_source_t::SETTING_SOURCE_DEFAULT source: _setting_source_t::SETTING_SOURCE_DEFAULT,
}; };
let mut sz_line: [u8; 256]; let mut sz_line: [u8; 256];
let mut psz_name: *mut u8 = 0i32 as (*mut u8); let mut psz_name: *mut u8 = 0i32 as (*mut u8);
@@ -659,11 +656,12 @@ pub unsafe extern fn _get_bool_config(
if !{ if !{
pf = fopen( pf = fopen(
(*b"/etc/yubico/yubikeypiv.conf\0").as_ptr(), (*b"/etc/yubico/yubikeypiv.conf\0").as_ptr(),
(*b"r\0").as_ptr() (*b"r\0").as_ptr(),
); );
pf pf
}.is_null( }
) { .is_null()
{
_currentBlock = 1; _currentBlock = 1;
} else { } else {
_currentBlock = 10; _currentBlock = 10;
@@ -674,9 +672,10 @@ pub unsafe extern fn _get_bool_config(
if fgets( if fgets(
sz_line.as_mut_ptr(), sz_line.as_mut_ptr(),
::std::mem::size_of::<[u8; 256]>() as (i32), ::std::mem::size_of::<[u8; 256]>() as (i32),
pf pf,
).is_null( )
) { .is_null()
{
_currentBlock = 1; _currentBlock = 1;
continue; continue;
} }
@@ -696,8 +695,9 @@ pub unsafe extern fn _get_bool_config(
sz_line.as_mut_ptr() as (*const u8), sz_line.as_mut_ptr() as (*const u8),
(*b"%255[^=]=%255s\0").as_ptr(), (*b"%255[^=]=%255s\0").as_ptr(),
sz_name.as_mut_ptr(), sz_name.as_mut_ptr(),
sz_value.as_mut_ptr() sz_value.as_mut_ptr(),
) == 2i32) { ) == 2i32)
{
_currentBlock = 1; _currentBlock = 1;
continue; continue;
} }
@@ -708,13 +708,8 @@ pub unsafe extern fn _get_bool_config(
} }
psz_value = _strip_ws(sz_value.as_mut_ptr()); psz_value = _strip_ws(sz_value.as_mut_ptr());
setting.source = _setting_source_t::SETTING_SOURCE_ADMIN; setting.source = _setting_source_t::SETTING_SOURCE_ADMIN;
setting.value = strcmp( setting.value = strcmp(psz_value as (*const u8), (*b"1\0").as_ptr()) == 0
psz_value as (*const u8), || strcasecmp(psz_value as (*const u8), (*b"true\0").as_ptr()) == 0;
(*b"1\0").as_ptr()
) == 0 || strcasecmp(
psz_value as (*const u8),
(*b"true\0").as_ptr()
) == 0;
} }
fclose(pf); fclose(pf);
_currentBlock = 10; _currentBlock = 10;
@@ -725,49 +720,37 @@ pub unsafe extern fn _get_bool_config(
} }
#[no_mangle] #[no_mangle]
pub unsafe extern fn _get_bool_env( pub unsafe extern "C" fn _get_bool_env(mut sz_setting: *const u8) -> _setting_bool_t {
mut sz_setting : *const u8 let mut setting: _setting_bool_t = _setting_bool_t {
) -> _setting_bool_t {
let mut setting
: _setting_bool_t
= _setting_bool_t {
value: false, value: false,
source: _setting_source_t::SETTING_SOURCE_DEFAULT source: _setting_source_t::SETTING_SOURCE_DEFAULT,
}; };
let mut psz_value let mut psz_value: *mut u8 = 0i32 as (*mut ::std::os::raw::c_void) as (*mut u8);
: *mut u8
= 0i32 as (*mut ::std::os::raw::c_void) as (*mut u8);
let mut sz_name = [0u8; 256]; let mut sz_name = [0u8; 256];
snprintf( snprintf(
sz_name.as_mut_ptr(), sz_name.as_mut_ptr(),
::std::mem::size_of::<[u8; 256]>().wrapping_sub(1usize), ::std::mem::size_of::<[u8; 256]>().wrapping_sub(1usize),
(*b"%s%s\0").as_ptr(), (*b"%s%s\0").as_ptr(),
(*b"YUBIKEY_PIV_\0").as_ptr(), (*b"YUBIKEY_PIV_\0").as_ptr(),
sz_setting sz_setting,
); );
psz_value = getenv(sz_name.as_mut_ptr() as (*const u8)); psz_value = getenv(sz_name.as_mut_ptr() as (*const u8));
if !psz_value.is_null() { if !psz_value.is_null() {
setting.source = _setting_source_t::SETTING_SOURCE_USER; setting.source = _setting_source_t::SETTING_SOURCE_USER;
setting.value = strcmp( setting.value = strcmp(psz_value as (*const u8), (*b"1\0").as_ptr()) == 0
psz_value as (*const u8), || strcasecmp(psz_value as (*const u8), (*b"true\0").as_ptr()) == 0;
(*b"1\0").as_ptr()
) == 0 || strcasecmp(
psz_value as (*const u8),
(*b"true\0").as_ptr()
) == 0;
} }
setting setting
} }
#[no_mangle] #[no_mangle]
pub unsafe extern fn setting_get_bool( pub unsafe extern "C" fn setting_get_bool(
mut sz_setting : *const u8, mut def : bool mut sz_setting: *const u8,
mut def: bool,
) -> _setting_bool_t { ) -> _setting_bool_t {
let mut setting let mut setting: _setting_bool_t = _setting_bool_t {
: _setting_bool_t
= _setting_bool_t {
value: def, value: def,
source: _setting_source_t::SETTING_SOURCE_DEFAULT source: _setting_source_t::SETTING_SOURCE_DEFAULT,
}; };
setting = _get_bool_config(sz_setting); setting = _get_bool_config(sz_setting);
if setting.source as (i32) == _setting_source_t::SETTING_SOURCE_DEFAULT as (i32) { if setting.source as (i32) == _setting_source_t::SETTING_SOURCE_DEFAULT as (i32) {
+634 -644
View File
File diff suppressed because it is too large Load Diff
+706 -744
View File
File diff suppressed because it is too large Load Diff
+16 -19
View File
@@ -25,16 +25,14 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
extern { extern "C" {
fn strcmp(__s1: *const u8, __s2: *const u8) -> i32; fn strcmp(__s1: *const u8, __s2: *const u8) -> i32;
fn strcspn(__s: *const u8, __charset: *const u8) -> usize; fn strcspn(__s: *const u8, __charset: *const u8) -> usize;
fn strncmp(__s1: *const u8, __s2: *const u8, __n: usize) -> i32; fn strncmp(__s1: *const u8, __s2: *const u8, __n: usize) -> i32;
fn strspn(__s: *const u8, __charset: *const u8) -> usize; fn strspn(__s: *const u8, __charset: *const u8) -> usize;
} }
unsafe extern fn my_strverscmp( unsafe extern "C" fn my_strverscmp(mut s1: *const u8, mut s2: *const u8) -> i32 {
mut s1 : *const u8, mut s2 : *const u8
) -> i32 {
let mut _currentBlock; let mut _currentBlock;
static mut digits: *const u8 = (*b"0123456789\0").as_ptr(); static mut digits: *const u8 = (*b"0123456789\0").as_ptr();
let mut p1: usize; let mut p1: usize;
@@ -42,11 +40,10 @@ unsafe extern fn my_strverscmp(
p1 = strcspn(s1, digits); p1 = strcspn(s1, digits);
p2 = strcspn(s2, digits); p2 = strcspn(s2, digits);
'loop1: loop { 'loop1: loop {
if !(p1 == p2 && (*s1.offset( if !(p1 == p2
p1 as (isize) && (*s1.offset(p1 as (isize)) as (i32) != b'\0' as (i32))
) as (i32) != b'\0' as (i32)) && (*s2.offset( && (*s2.offset(p2 as (isize)) as (i32) != b'\0' as (i32)))
p2 as (isize) {
) as (i32) != b'\0' as (i32))) {
_currentBlock = 2; _currentBlock = 2;
break; break;
} }
@@ -56,7 +53,8 @@ unsafe extern fn my_strverscmp(
if { if {
ret = strncmp(s1, s2, p1); ret = strncmp(s1, s2, p1);
ret ret
} != 0i32 { } != 0i32
{
_currentBlock = 37; _currentBlock = 37;
break; break;
} }
@@ -102,7 +100,10 @@ unsafe extern fn my_strverscmp(
_currentBlock = 32; _currentBlock = 32;
break 'loop1; break 'loop1;
} }
if *s1 as (i32) != *s2 as (i32) && (*s1 as (i32) != b'0' as (i32)) && (*s2 as (i32) != b'0' as (i32)) { if *s1 as (i32) != *s2 as (i32)
&& (*s1 as (i32) != b'0' as (i32))
&& (*s2 as (i32) != b'0' as (i32))
{
if p1 < p2 { if p1 < p2 {
_currentBlock = 31; _currentBlock = 31;
break 'loop1; break 'loop1;
@@ -145,7 +146,8 @@ unsafe extern fn my_strverscmp(
if { if {
ret = strncmp(s1, s2, p1); ret = strncmp(s1, s2, p1);
ret ret
} != 0i32 { } != 0i32
{
_currentBlock = 27; _currentBlock = 27;
break; break;
} }
@@ -182,13 +184,8 @@ unsafe extern fn my_strverscmp(
} }
#[no_mangle] #[no_mangle]
pub unsafe extern fn ykpiv_check_version( pub unsafe extern "C" fn ykpiv_check_version(mut req_version: *const u8) -> *const u8 {
mut req_version : *const u8 if req_version.is_null() || my_strverscmp(req_version, (*b"@VERSION@\0").as_ptr()) <= 0i32 {
) -> *const u8 {
if req_version.is_null() || my_strverscmp(
req_version,
(*b"@VERSION@\0").as_ptr()
) <= 0i32 {
(*b"@VERSION@\0").as_ptr() (*b"@VERSION@\0").as_ptr()
} else { } else {
0i32 as (*mut ::std::os::raw::c_void) as (*const u8) 0i32 as (*mut ::std::os::raw::c_void) as (*const u8)