aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/lib/libotputil/lrfc1760-skey.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libotputil/lrfc1760-skey.c')
-rw-r--r--lib/libotputil/lrfc1760-skey.c26
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