x509_alg.h 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. /*
  2. * Copyright 2014-2022 The GmSSL Project. All Rights Reserved.
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the License); you may
  5. * not use this file except in compliance with the License.
  6. *
  7. * http://www.apache.org/licenses/LICENSE-2.0
  8. */
  9. #ifndef GMSSL_X509_ALG_H
  10. #define GMSSL_X509_ALG_H
  11. #include <time.h>
  12. #include <string.h>
  13. #include <stdint.h>
  14. #include <stdlib.h>
  15. #include <gmssl/sm2.h>
  16. #include <gmssl/oid.h>
  17. #include <gmssl/asn1.h>
  18. #ifdef __cplusplus
  19. extern "C" {
  20. #endif
  21. /*
  22. AlgorithmIdentifier ::= SEQUENCE {
  23. algorithm OBJECT IDENTIFIER,
  24. parameters ANY }
  25. */
  26. const char *x509_digest_algor_name(int oid);
  27. int x509_digest_algor_from_name(const char *name);
  28. int x509_digest_algor_from_der(int *oid, const uint8_t **in, size_t *inlen);
  29. int x509_digest_algor_to_der(int oid, uint8_t **out, size_t *outlen);
  30. int x509_digest_algor_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen);
  31. const char *x509_encryption_algor_name(int oid);
  32. int x509_encryption_algor_from_name(const char *name);
  33. int x509_encryption_algor_from_der(int *oid, const uint8_t **iv, size_t *ivlen, const uint8_t **in, size_t *inlen);
  34. int x509_encryption_algor_to_der(int oid, const uint8_t *iv, size_t ivlen, uint8_t **out, size_t *outlen);
  35. int x509_encryption_algor_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen);
  36. const char *x509_signature_algor_name(int oid);
  37. int x509_signature_algor_from_name(const char *name);
  38. int x509_signature_algor_from_der(int *oid, const uint8_t **in, size_t *inlen);
  39. int x509_signature_algor_to_der(int oid, uint8_t **out, size_t *outlen);
  40. int x509_signature_algor_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen);
  41. const char *x509_public_key_encryption_algor_name(int oid);
  42. int x509_public_key_encryption_algor_from_name(const char *name);
  43. int x509_public_key_encryption_algor_from_der(int *oid, const uint8_t **params, size_t *params_len, const uint8_t **in, size_t *inlen);
  44. int x509_public_key_encryption_algor_to_der(int oid, uint8_t **out, size_t *outlen);
  45. int x509_public_key_encryption_algor_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen);
  46. const char *x509_public_key_algor_name(int oid);
  47. int x509_public_key_algor_from_name(const char *name);
  48. int x509_public_key_algor_to_der(int oid, int curve, uint8_t **out, size_t *outlen);
  49. int x509_public_key_algor_from_der(int *oid, int *curve_or_null, const uint8_t **in, size_t *inlen);
  50. int x509_public_key_algor_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen);
  51. #ifdef __cplusplus
  52. }
  53. #endif
  54. #endif