crypto.h 701 B

123456789101112131415161718192021222324252627282930
  1. #ifndef _CRYPTO_H_
  2. #define _CRYPTO_H_
  3. #include <stdint.h>
  4. #include <openssl/evp.h>
  5. # define n2s(c,s) ((s=(((unsigned int)(c[0]))<< 8)| \
  6. (((unsigned int)(c[1])) )),c+=2)
  7. int PRF(uint8_t *secret, int32_t secret_len,
  8. uint8_t *seed1, int32_t seed1_len,
  9. uint8_t *seed2, int32_t seed2_len,
  10. uint8_t *seed3, int32_t seed3_len,
  11. uint8_t *seed4, int32_t seed4_len,
  12. uint8_t *output, int32_t output_len);
  13. int peek_header(uint8_t *data);
  14. int super_decrypt(uint8_t *data);
  15. int generate_super_keys(uint8_t *secret);
  16. typedef struct super_data_st {
  17. uint8_t *header_key;
  18. uint8_t *body_key;
  19. EVP_MD_CTX *body_mac_ctx;
  20. } super_data;
  21. #define PRE_MASTER_LEN 256
  22. #endif /* _CRYPTO_H_ */