Browse Source

Works for LA with decryptor. decrypt_client_data doesnt work

dettanym 5 years ago
parent
commit
535d6cdee8

+ 1 - 0
SgxProtobufLAInitiator.cpp

@@ -91,6 +91,7 @@ uint32_t decrypt_wrapper(unsigned char* ciphertext, int ciphertext_len, unsigned
 
 uint32_t aes_gcm_wrapper(int enc, unsigned char* ciphertext, int ciphertext_len, unsigned char* op_plaintext, int* op_plaintext_len, unsigned char* ip_tag)
 {
+	memset(iv, 0, 12); 
         uint32_t return_status;
         unsigned char key[16]; uint32_t count;
         for(count=0;count<16;count++)

+ 5 - 5
SgxProtobufLAInitiator_Transforms.cpp

@@ -80,7 +80,7 @@ void encode_attributes_to_protobuf(protobuf_sgx_attributes_t* protobuf_attribute
 // TODO: PRIVATE
 void encode_report_to_protobuf(protobuf_sgx_report_t* protobuf_report, sgx_report_t* report)
 {
-	printf("\n report \n key id \n");
+	printf("\n OWN report \n key id \n");
 	int counter; google::protobuf::uint32 temp32;
 	for(counter=0;counter<SGX_KEYID_SIZE;counter++)
 	{
@@ -138,7 +138,7 @@ void encode_report_to_protobuf(protobuf_sgx_report_t* protobuf_report, sgx_repor
 	{
 		temp32=report->body.mr_enclave.m[counter];
 		protobuf_report->mutable_body()->add_mr_enclave(temp32);
-		printf("%x ", temp32);
+		printf("%02x", temp32);
  	}
 
 	printf("\n mr signer\n");  fflush(stdout);
@@ -146,10 +146,10 @@ void encode_report_to_protobuf(protobuf_sgx_report_t* protobuf_report, sgx_repor
 	{
 		temp32=report->body.mr_signer.m[counter];
 		protobuf_report->mutable_body()->add_mr_signer(temp32);
-		printf("%x ", temp32);
+		printf("0x%02x,", temp32);
  	}
-
-
+	printf("\n"); fflush(stdout); 
+	
 	for(counter=0;counter<SGX_REPORT_DATA_SIZE;counter++)
 	{
 		temp32=report->body.report_data.d[counter];

BIN
localattestation_decryption.so


+ 7 - 10
systemMain.cpp

@@ -38,7 +38,7 @@ class Mitigator : public Php::Base
 	static void local_attestation_initiator_wrapper() 
 	{
 		printf("Hello.\n"); fflush(stdout);
-	
+		
 		setbuf(stdout,NULL); uint32_t count;
 		uint32_t return_sgx; 
 		unsigned char* base64_encoded_mitigator_header_and_value = (unsigned char*) malloc(mitigator_pubkey_header.length()+1+216); 
@@ -61,10 +61,8 @@ class Mitigator : public Php::Base
 			printf("\nSuccessful LA with port %d.\n", DECRYPTOR_PORT);
 			fflush(stdout);
 			local_attestation_successful=1; 
-			printf("length of string was %d\n", mitigator_pubkey_header.length()); fflush(stdout); 
 			mitigator_pubkey_header_value=std::string((char*)base64_encoded_mitigator_header_and_value,mitigator_pubkey_header.length()+216); 
 		}
-
 	}
 
 
@@ -78,7 +76,7 @@ class Mitigator : public Php::Base
 		// call this func onRequest 
 		static Php::Value php_decrypt_wrapper(Php::Parameters &params   )
 		{
-			/*
+			
 			int counter; 
 			unsigned char* plaintext_user_data; 
 			unsigned char* ciphertext_user_data;
@@ -96,12 +94,12 @@ class Mitigator : public Php::Base
 
 			printf("Base64 encoded key:\n");
 			for(counter=0; counter < 88; counter++)
-				printf("%c ", base64_encoded_pub_key[counter]);
+				printf("%c", base64_encoded_pub_key[counter]);
 			printf("\n"); fflush(stdout); 
 
 			printf("Ciphertext received:\n");
 			for(counter=0 ; counter < ciphertext_length; counter++ )
-				printf("0x%02x ", ciphertext_user_data[counter]);
+				printf("%02x", ciphertext_user_data[counter]);
 			printf("\n"); fflush(stdout); 
 
 			uint32_t ret_status=decrypt_client_data_through_decryptor(base64_encoded_pub_key, ciphertext_user_data, ciphertext_length, (unsigned char*) plaintext_user_data, &plaintext_length);
@@ -117,8 +115,9 @@ class Mitigator : public Php::Base
 
 			std::string plaintext_user_data_str = std::string((char*) plaintext_user_data, plaintext_length); 
 			// free(plaintext_user_data); // TODO: For some reason, this causes a crash. 
-			*/
-			return "Miti";//plaintext_user_data_str; plaintext_user_data_obj; // (ciphertext_user_data, ciphertext_length) ; 
+			
+			return plaintext_user_data_str; //plaintext_user_data_obj; // (ciphertext_user_data, ciphertext_length) ; 
+//			*/ return params[1];
 		}
 
 };
@@ -135,11 +134,9 @@ extern "C" {
         
         Php::Class<Mitigator> mitigator("Mitigator");
 	mitigator.method<&Mitigator::get_mitigator_header>("get_mitigator_header");
-//        mitigator.property("mitigator_header", &Mitigator::get_mitigator_header);
 	mitigator.method<&Mitigator::local_attestation_initiator_wrapper>("local_attestation_initiator_wrapper"); 
 	mitigator.method<&Mitigator::php_decrypt_wrapper>("php_decrypt_wrapper", { Php::ByVal("string", Php::Type::String), Php::ByVal("string", Php::Type::String) }   ); 
         extension.onStartup(&Mitigator::local_attestation_initiator_wrapper);
-//	extension.onRequest(&Mitigator::php_decrypt_wrapper); 
         // return the extension module
 	extension.add(mitigator); 
         return extension.module();