keyfmt.c 491 B

12345678910111213141516171819202122232425262728
  1. #include <u.h>
  2. #include <libc.h>
  3. #include "authcmdlib.h"
  4. /*
  5. * print a key in des standard form
  6. */
  7. int
  8. keyfmt(Fmt *f)
  9. {
  10. uchar key[8];
  11. char buf[32];
  12. uchar *k;
  13. int i;
  14. k = va_arg(f->args, uchar*);
  15. key[0] = 0;
  16. for(i = 0; i < 7; i++){
  17. key[i] |= k[i] >> i;
  18. key[i] &= ~1;
  19. key[i+1] = k[i] << (7 - i);
  20. }
  21. key[7] &= ~1;
  22. sprint(buf, "%.3uo %.3uo %.3uo %.3uo %.3uo %.3uo %.3uo %.3uo",
  23. key[0], key[1], key[2], key[3], key[4], key[5], key[6], key[7]);
  24. fmtstrcpy(f, buf);
  25. return 0;
  26. }