You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

41 lines
1.4 KiB

6 years ago
6 years ago
  1. /*
  2. Copyright Jeroen Vreeken (jeroen@vreeken.net), 2015
  3. This program is free software: you can redistribute it and/or modify
  4. it under the terms of the GNU General Public License as published by
  5. the Free Software Foundation, either version 3 of the License, or
  6. (at your option) any later version.
  7. This program is distributed in the hope that it will be useful,
  8. but WITHOUT ANY WARRANTY; without even the implied warranty of
  9. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  10. GNU General Public License for more details.
  11. You should have received a copy of the GNU General Public License
  12. along with this program. If not, see <http://www.gnu.org/licenses/>.
  13. */
  14. #ifndef _INCLUDE_DML_CRYPTO_H_
  15. #define _INCLUDE_DML_CRYPTO_H_
  16. #include "dml.h"
  17. struct dml_crypto_key;
  18. int dml_crypto_init(char *ca_file, char *ca_dir);
  19. int dml_crypto_cert_add_verify(void *cert, size_t size, uint8_t id[DML_ID_SIZE]);
  20. int dml_crypto_load_cert(char *file);
  21. int dml_crypto_cert_get(void **cert, size_t *size);
  22. struct dml_crypto_key *dml_crypto_private_load(char *file);
  23. struct dml_crypto_key *dml_crypto_public_get(uint8_t id[DML_ID_SIZE]);
  24. int dml_crypto_sign(uint8_t sig[DML_SIG_SIZE], void *data, size_t len, struct dml_crypto_key *dk);
  25. bool dml_crypto_verify(void *data, size_t len, uint8_t sig[DML_SIG_SIZE], struct dml_crypto_key *dk);
  26. void dml_crypto_key_free(struct dml_crypto_key *);
  27. #endif /* _INCLUDE_DML_CRYPTO_H_ */