Decryptor.h 1.8 KB

1234567891011121314151617181920212223242526272829303132333435
  1. #include "sgx_eid.h"
  2. #include "sgx_tcrypto.h"
  3. #include "Decryptor_t.h"
  4. #include "EnclaveMessageExchange.h"
  5. #include "error_codes.h"
  6. #include "sgx_thread.h"
  7. #include "sgx_dh.h"
  8. #include <map>
  9. #include "sgx_tcrypto.h"
  10. #include "LocalAttestationCode_t.h"
  11. #include "sgx_tseal.h"
  12. #include "Openssl_crypto.h"
  13. #include "ECDSASignatureBox.h"
  14. #include "HybridEncryptionBox.h"
  15. #include "LocalAttestationTrusted.h"
  16. #include "sgx_tseal.h"
  17. class Decryptor {
  18. static ECDSASignatureBox signatureBox;
  19. static HybridEncryptionBox hybridEncryptionBoxClient;
  20. static LocalAttestationTrusted localAttestation;
  21. static uint32_t create_mitigator_token_M(uint8_t* token);
  22. static uint32_t create_mitigator_header_H(uint8_t* signature_data, uint8_t* signature);
  23. static uint32_t create_long_term_signing_keypair(uint8_t* private_public_key_string);
  24. static uint32_t initialize_symmetric_key_decrypt_client_data(uint8_t* plaintext_client_public_key_plus_encrypted_data_plus_tag, uint32_t total_length, uint8_t* plaintext_client_data, uint32_t* plaintext_client_data_length);
  25. public:
  26. // Decryptor(): signatureBox(), hybridEncryptionBoxClient(), localAttestation();
  27. // ~Decryptor();
  28. static uint32_t create_and_seal_long_term_signing_key_pair(uint32_t* sealed_data_length, uint8_t* sealed_data);
  29. static uint32_t create_and_encrypt_mitigator_header_H(uint8_t* ciphertext_token_H_plus_tag);
  30. static uint32_t unseal_and_restore_long_term_signing_key_pair(uint8_t* sealed_data, uint32_t* sgx_sealed_data_length);
  31. static uint32_t decrypt_verifiers_message_set_apache_mrsigner(uint8_t* ciphertext_plus_tag);
  32. static uint32_t process_apache_message_generate_response(uint8_t* input_ciphertext, uint32_t input_ciphertext_plus_tag_length, uint8_t* output_ciphertext, uint32_t* output_ciphertext_plus_tag_length);
  33. };