pk_oid_test.c 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. /* LibTomCrypt, modular cryptographic library -- Tom St Denis */
  2. /* SPDX-License-Identifier: Unlicense */
  3. #include <tomcrypt_test.h>
  4. int pk_oid_test(void)
  5. {
  6. const char *oid_str = "1.2.3.4.5";
  7. const unsigned long oid_ul[] = { 1, 2, 3, 4, 5 };
  8. char str[16];
  9. unsigned long buf[6], num = LTC_ARRAY_SIZE(oid_ul), strlen = sizeof(str), should_size = 0;
  10. SHOULD_FAIL_WITH(pk_oid_str_to_num(oid_str, NULL, &should_size), CRYPT_BUFFER_OVERFLOW);
  11. ENSURE(should_size == 5);
  12. DO(pk_oid_str_to_num(oid_str, buf, &num));
  13. ENSURE(num == 5);
  14. should_size = 1;
  15. SHOULD_FAIL_WITH(pk_oid_num_to_str(oid_ul, 5, str, &should_size), CRYPT_BUFFER_OVERFLOW);
  16. ENSURE(should_size == 10);
  17. should_size = 1;
  18. SHOULD_FAIL_WITH(pk_oid_num_to_str(oid_ul, 5, NULL, &should_size), CRYPT_BUFFER_OVERFLOW);
  19. ENSURE(should_size == 10);
  20. should_size = 16;
  21. SHOULD_FAIL_WITH(pk_oid_num_to_str(oid_ul, 5, NULL, &should_size), CRYPT_BUFFER_OVERFLOW);
  22. ENSURE(should_size == 10);
  23. XMEMSET(str, 'a', sizeof(str));
  24. DO(pk_oid_num_to_str(oid_ul, 5, str, &strlen));
  25. ENSURE(strlen == 10);
  26. ENSURE(XMEMCMP(str, oid_str, strlen) == 0);
  27. XMEMSET(str, 'a', sizeof(str));
  28. strlen = 10;
  29. DO(pk_oid_num_to_str(oid_ul, 5, str, &strlen));
  30. ENSURE(strlen == 10);
  31. ENSURE(XMEMCMP(str, oid_str, strlen) == 0);
  32. return 0;
  33. }