diff options
Diffstat (limited to 'lib/libotputil/lmisc.c')
| -rw-r--r-- | lib/libotputil/lmisc.c | 44 |
1 files changed, 41 insertions, 3 deletions
diff --git a/lib/libotputil/lmisc.c b/lib/libotputil/lmisc.c index 1ec3c78..8312e86 100644 --- a/lib/libotputil/lmisc.c +++ b/lib/libotputil/lmisc.c | |||
| @@ -55,10 +55,23 @@ | |||
| 55 | ///////////////// | 55 | ///////////////// |
| 56 | #pragma mark - Variables | 56 | #pragma mark - Variables |
| 57 | 57 | ||
| 58 | #pragma mark otputil_encoding_list[] | ||
| 59 | static const otputil_map_t otputil_encoding_list[] = | ||
| 60 | { | ||
| 61 | { .map_name = "none", .map_id = 0 }, | ||
| 62 | { .map_name = "hex", .map_id = OTPUTIL_ENC_HEX }, | ||
| 63 | { .map_name = "six-word", .map_id = OTPUTIL_ENC_SIXWORD }, | ||
| 64 | { .map_name = "altdict", .map_id = OTPUTIL_ENC_ALTDICT }, | ||
| 65 | // duplicate names | ||
| 66 | { .map_name = "six", .map_id = OTPUTIL_ENC_SIXWORD }, | ||
| 67 | { .map_name = NULL, .map_id = 0 }, | ||
| 68 | }; | ||
| 69 | |||
| 70 | |||
| 58 | #pragma mark otputil_md_list[] | 71 | #pragma mark otputil_md_list[] |
| 59 | static const otputil_map_t otputil_md_list[] = | 72 | static const otputil_map_t otputil_md_list[] = |
| 60 | { | 73 | { |
| 61 | { .map_name = "none", .map_id = OTPUTIL_MD_NONE }, | 74 | { .map_name = "none", .map_id = 0 }, |
| 62 | { .map_name = "md4", .map_id = OTPUTIL_MD_MD4 }, | 75 | { .map_name = "md4", .map_id = OTPUTIL_MD_MD4 }, |
| 63 | { .map_name = "md5", .map_id = OTPUTIL_MD_MD5 }, | 76 | { .map_name = "md5", .map_id = OTPUTIL_MD_MD5 }, |
| 64 | { .map_name = "sha1", .map_id = OTPUTIL_MD_SHA1 }, | 77 | { .map_name = "sha1", .map_id = OTPUTIL_MD_SHA1 }, |
| @@ -123,7 +136,7 @@ otputil_debug( | |||
| 123 | fprintf(fs, "\n"); | 136 | fprintf(fs, "\n"); |
| 124 | 137 | ||
| 125 | fprintf(fs, "OTP (RFC 2289) Options:\n"); | 138 | fprintf(fs, "OTP (RFC 2289) Options:\n"); |
| 126 | fprintf(fs, " OTPUTIL_OPT_OTP_ENCODE: %i\n", tud->otp_encoding); | 139 | fprintf(fs, " OTPUTIL_OPT_OTP_ENCODE: %s (%i)\n", otputil_encoding2str(tud->otp_encoding), tud->otp_encoding); |
| 127 | fprintf(fs, " OTPUTIL_OPT_OTP_HASH: %s (%i)\n", otputil_md2str(tud->otp_hash), tud->otp_hash); | 140 | fprintf(fs, " OTPUTIL_OPT_OTP_HASH: %s (%i)\n", otputil_md2str(tud->otp_hash), tud->otp_hash); |
| 128 | fprintf(fs, " OTPUTIL_OPT_OTP_PASS: %s\n", (((tud->otp_pass)) ? tud->otp_pass : "n/a")); | 141 | fprintf(fs, " OTPUTIL_OPT_OTP_PASS: %s\n", (((tud->otp_pass)) ? tud->otp_pass : "n/a")); |
| 129 | fprintf(fs, " OTPUTIL_OPT_OTP_SEED: %s\n", (((tud->otp_seed)) ? tud->otp_seed : "n/a")); | 142 | fprintf(fs, " OTPUTIL_OPT_OTP_SEED: %s\n", (((tud->otp_seed)) ? tud->otp_seed : "n/a")); |
| @@ -131,7 +144,7 @@ otputil_debug( | |||
| 131 | fprintf(fs, "\n"); | 144 | fprintf(fs, "\n"); |
| 132 | 145 | ||
| 133 | fprintf(fs, "S/KEY (RFC 1760) Options:\n"); | 146 | fprintf(fs, "S/KEY (RFC 1760) Options:\n"); |
| 134 | fprintf(fs, " OTPUTIL_OPT_SKEY_ENCODE: %i\n", tud->skey_encoding); | 147 | fprintf(fs, " OTPUTIL_OPT_SKEY_ENCODE: %s (%i)\n", otputil_encoding2str(tud->skey_encoding), tud->skey_encoding); |
| 135 | fprintf(fs, " OTPUTIL_OPT_SKEY_HASH: %s (%i)\n", otputil_md2str(tud->skey_hash), tud->skey_hash); | 148 | fprintf(fs, " OTPUTIL_OPT_SKEY_HASH: %s (%i)\n", otputil_md2str(tud->skey_hash), tud->skey_hash); |
| 136 | fprintf(fs, " OTPUTIL_OPT_SKEY_PASS: %s\n", (((tud->skey_pass)) ? tud->skey_pass : "n/a")); | 149 | fprintf(fs, " OTPUTIL_OPT_SKEY_PASS: %s\n", (((tud->skey_pass)) ? tud->skey_pass : "n/a")); |
| 137 | fprintf(fs, " OTPUTIL_OPT_SKEY_SEQ: %i\n", tud->skey_seq); | 150 | fprintf(fs, " OTPUTIL_OPT_SKEY_SEQ: %i\n", tud->skey_seq); |
| @@ -150,6 +163,18 @@ otputil_debug( | |||
| 150 | 163 | ||
| 151 | 164 | ||
| 152 | const char * | 165 | const char * |
| 166 | otputil_encoding2str( | ||
| 167 | int md ) | ||
| 168 | { | ||
| 169 | int x; | ||
| 170 | for(x = 0; ((otputil_encoding_list[x].map_name)); x++) | ||
| 171 | if (md == otputil_encoding_list[x].map_id) | ||
| 172 | return(otputil_encoding_list[x].map_name); | ||
| 173 | return(NULL); | ||
| 174 | } | ||
| 175 | |||
| 176 | |||
| 177 | const char * | ||
| 153 | otputil_err2string( | 178 | otputil_err2string( |
| 154 | int err ) | 179 | int err ) |
| 155 | { | 180 | { |
| @@ -232,6 +257,19 @@ otputil_meth2str( | |||
| 232 | 257 | ||
| 233 | 258 | ||
| 234 | int | 259 | int |
| 260 | otputil_str2encoding( | ||
| 261 | const char * str ) | ||
| 262 | { | ||
| 263 | int x; | ||
| 264 | assert(str != NULL); | ||
| 265 | for(x = 0; ((otputil_encoding_list[x].map_name)); x++) | ||
| 266 | if (!(strcasecmp(str, otputil_encoding_list[x].map_name))) | ||
| 267 | return(otputil_encoding_list[x].map_id); | ||
| 268 | return(-1); | ||
| 269 | } | ||
| 270 | |||
| 271 | |||
| 272 | int | ||
| 235 | otputil_str2md( | 273 | otputil_str2md( |
| 236 | const char * str ) | 274 | const char * str ) |
| 237 | { | 275 | { |
