diff options
Diffstat (limited to 'lib/libotputil/lrfc1760-skey.c')
| -rw-r--r-- | lib/libotputil/lrfc1760-skey.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/libotputil/lrfc1760-skey.c b/lib/libotputil/lrfc1760-skey.c index 44216e8..1a6e9fa 100644 --- a/lib/libotputil/lrfc1760-skey.c +++ b/lib/libotputil/lrfc1760-skey.c | |||
| @@ -161,6 +161,8 @@ char * | |||
| 161 | otputil_skey_str( | 161 | otputil_skey_str( |
| 162 | const char * skey_pass, | 162 | const char * skey_pass, |
| 163 | int skey_seq, | 163 | int skey_seq, |
| 164 | int skey_hash, | ||
| 165 | int skey_encoding, | ||
| 164 | char * dst, | 166 | char * dst, |
| 165 | size_t dstlen ) | 167 | size_t dstlen ) |
| 166 | { | 168 | { |
| @@ -171,10 +173,11 @@ otputil_skey_str( | |||
| 171 | 173 | ||
| 172 | dstlen = ((dst)) ? dstlen : sizeof(buff); | 174 | dstlen = ((dst)) ? dstlen : sizeof(buff); |
| 173 | dst = ((dst)) ? dst : buff; | 175 | dst = ((dst)) ? dst : buff; |
| 176 | skey_encoding = ((skey_encoding)) ? skey_encoding : otputil_defaults.skey_encoding; | ||
| 174 | res.bv_val = bv_val; | 177 | res.bv_val = bv_val; |
| 175 | res.bv_len = sizeof(bv_val); | 178 | res.bv_len = sizeof(bv_val); |
| 176 | 179 | ||
| 177 | if (otputil_skey_code(skey_pass, skey_seq, 0, &val) == -1) | 180 | if (otputil_skey_code(skey_pass, skey_seq, skey_hash, &val) == -1) |
| 178 | return(NULL); | 181 | return(NULL); |
| 179 | 182 | ||
| 180 | bv_val[0] = (val >> 56) & 0xff; | 183 | bv_val[0] = (val >> 56) & 0xff; |
| @@ -185,7 +188,7 @@ otputil_skey_str( | |||
| 185 | bv_val[5] = (val >> 16) & 0xff; | 188 | bv_val[5] = (val >> 16) & 0xff; |
| 186 | bv_val[6] = (val >> 8) & 0xff; | 189 | bv_val[6] = (val >> 8) & 0xff; |
| 187 | bv_val[7] = (val >> 0) & 0xff; | 190 | bv_val[7] = (val >> 0) & 0xff; |
| 188 | otputil_otp_encode(&res, dst, dstlen, OTPUTIL_ENC_SIXWORD); | 191 | otputil_otp_encode(&res, dst, dstlen, skey_encoding); |
| 189 | 192 | ||
| 190 | return(dst); | 193 | return(dst); |
| 191 | } | 194 | } |
