diff options
Diffstat (limited to 'lib/libotputil/lrfc1760-skey.c')
| -rw-r--r-- | lib/libotputil/lrfc1760-skey.c | 26 |
1 files changed, 6 insertions, 20 deletions
diff --git a/lib/libotputil/lrfc1760-skey.c b/lib/libotputil/lrfc1760-skey.c index 1a6e9fa..61583ba 100644 --- a/lib/libotputil/lrfc1760-skey.c +++ b/lib/libotputil/lrfc1760-skey.c | |||
| @@ -166,31 +166,17 @@ otputil_skey_str( | |||
| 166 | char * dst, | 166 | char * dst, |
| 167 | size_t dstlen ) | 167 | size_t dstlen ) |
| 168 | { | 168 | { |
| 169 | uint64_t val; | 169 | static char buff[32]; |
| 170 | otputil_bv_t res; | 170 | |
| 171 | uint8_t bv_val[8]; | 171 | assert(skey_pass != NULL); |
| 172 | static char buff[32]; | ||
| 173 | 172 | ||
| 174 | dstlen = ((dst)) ? dstlen : sizeof(buff); | 173 | dstlen = ((dst)) ? dstlen : sizeof(buff); |
| 175 | dst = ((dst)) ? dst : buff; | 174 | dst = ((dst)) ? dst : buff; |
| 175 | skey_seq = (skey_seq >= 0) ? skey_seq : otputil_defaults.skey_seq; | ||
| 176 | skey_hash = ((skey_hash)) ? skey_hash : otputil_defaults.skey_hash; | ||
| 176 | skey_encoding = ((skey_encoding)) ? skey_encoding : otputil_defaults.skey_encoding; | 177 | skey_encoding = ((skey_encoding)) ? skey_encoding : otputil_defaults.skey_encoding; |
| 177 | res.bv_val = bv_val; | ||
| 178 | res.bv_len = sizeof(bv_val); | ||
| 179 | |||
| 180 | if (otputil_skey_code(skey_pass, skey_seq, skey_hash, &val) == -1) | ||
| 181 | return(NULL); | ||
| 182 | 178 | ||
| 183 | bv_val[0] = (val >> 56) & 0xff; | 179 | return(otputil_otp_str(skey_pass, NULL, skey_seq, skey_hash, skey_encoding, dst, dstlen)); |
| 184 | bv_val[1] = (val >> 48) & 0xff; | ||
| 185 | bv_val[2] = (val >> 40) & 0xff; | ||
| 186 | bv_val[3] = (val >> 32) & 0xff; | ||
| 187 | bv_val[4] = (val >> 24) & 0xff; | ||
| 188 | bv_val[5] = (val >> 16) & 0xff; | ||
| 189 | bv_val[6] = (val >> 8) & 0xff; | ||
| 190 | bv_val[7] = (val >> 0) & 0xff; | ||
| 191 | otputil_otp_encode(&res, dst, dstlen, skey_encoding); | ||
| 192 | |||
| 193 | return(dst); | ||
| 194 | } | 180 | } |
| 195 | 181 | ||
| 196 | 182 | ||
