MRTD use smaller data type of lengths, add sha1 test

This commit is contained in:
Chris van Marle
2022-10-11 22:13:04 +02:00
parent 0871d274eb
commit 44c2299b70
3 changed files with 38 additions and 13 deletions
+7 -7
View File
@@ -1,12 +1,12 @@
#include "mrtd_helpers.h"
uint8_t mrtd_bac_check_digit(const uint8_t* input, const size_t length) {
const size_t num_weights = 3;
uint8_t mrtd_bac_check_digit(const uint8_t* input, const uint8_t length) {
const uint8_t num_weights = 3;
uint8_t weights[] = {7, 3, 1};
uint8_t check_digit = 0;
uint8_t idx;
for(size_t i=0; i<length; ++i) {
for(uint8_t i=0; i<length; ++i) {
uint8_t c = input[i];
if(c >= 'A' && c <= 'Z') {
idx = c - 'A' + 10;
@@ -37,10 +37,10 @@ void mrtd_print_date(uint8_t* output, MrtdDate* date) {
// - DOCNR of size <9
// - DOCNR of size >9
// - DOCNR of size MRTD_DOCNR_MAX_LENGTH
bool mrtd_bac_get_kmrz(MrtdAuthData* auth, uint8_t* output, size_t output_size) {
size_t idx = 0;
size_t docnr_length = strlen(auth->doc_number);
size_t cd_idx = 0;
bool mrtd_bac_get_kmrz(MrtdAuthData* auth, uint8_t* output, uint8_t output_size) {
uint8_t idx = 0;
uint8_t docnr_length = strlen(auth->doc_number);
uint8_t cd_idx = 0;
if(output_size < docnr_length + 16) {
return false;
}
+2 -2
View File
@@ -30,8 +30,8 @@ typedef struct {
//TODO: PACE
} MrtdAuthData;
uint8_t mrtd_bac_check_digit(const uint8_t* input, const size_t length);
uint8_t mrtd_bac_check_digit(const uint8_t* input, const uint8_t length);
void mrtd_print_date(uint8_t* output, MrtdDate* date);
bool mrtd_bac_get_kmrz(MrtdAuthData* auth, uint8_t* output, size_t output_size);
bool mrtd_bac_get_kmrz(MrtdAuthData* auth, uint8_t* output, uint8_t output_size);