|
|
@@ -7,7 +7,7 @@
|
|
|
namespace SealingUntrusted {
|
|
|
|
|
|
namespace {
|
|
|
- int create_and_seal_signing_key_pair_to_disk(sgx_enclave_id_t enclave_id, int fd)
|
|
|
+ int create_and_seal_signing_key_pair_to_disk(sgx_enclave_id_t enclave_id, char* filename)
|
|
|
{
|
|
|
uint32_t ret_status=0, counter=0;
|
|
|
size_t length=0;
|
|
|
@@ -30,27 +30,28 @@ namespace SealingUntrusted {
|
|
|
for(counter=0; counter<length; counter++)
|
|
|
printf("%02x ", sealed_data[counter]);
|
|
|
|
|
|
- ret_status = FileIO::write_to_fd(fd, sealed_data, &length);
|
|
|
+ ret_status = FileIO::write_to_filename(filename, sealed_data, &length);
|
|
|
free(sealed_data);
|
|
|
|
|
|
return ret_status;
|
|
|
}
|
|
|
|
|
|
- int unseal_signing_key_pair_from_disk(sgx_enclave_id_t enclave_id, int fd, size_t sealed_msg_length_in_file)
|
|
|
+ int unseal_signing_key_pair_from_disk(sgx_enclave_id_t enclave_id, char* filename, size_t sealed_msg_length_in_file)
|
|
|
{
|
|
|
uint32_t ret_status=0, counter=0;
|
|
|
size_t length=sealed_msg_length_in_file;
|
|
|
uint8_t* sealed_data;
|
|
|
|
|
|
sealed_data = (uint8_t*) malloc(sealed_msg_length_in_file);
|
|
|
- ret_status = FileIO::read_from_fd(fd, sealed_data, &length);
|
|
|
+ ret_status = FileIO::read_from_filename(filename, sealed_data, &length);
|
|
|
if(ret_status == -1)
|
|
|
{
|
|
|
free(sealed_data);
|
|
|
return -1;
|
|
|
}
|
|
|
- length=ret_status;
|
|
|
|
|
|
+ printf("Here's the chars my dudes: they are of length %d.\n", length);
|
|
|
+ fflush(stdout);
|
|
|
for(counter=0;counter<length;counter++)
|
|
|
printf("%x ", *(sealed_data+counter));
|
|
|
printf("\n"); fflush(stdout);
|
|
|
@@ -67,18 +68,18 @@ namespace SealingUntrusted {
|
|
|
uint32_t ret_status;
|
|
|
int fd;
|
|
|
|
|
|
- sealed_key_size = FileIO::check_if_file_exists_return_size(filename, &fd);
|
|
|
+ sealed_key_size = FileIO::check_if_file_exists_return_size(filename);
|
|
|
if(sealed_key_size == 0) // File is empty. create signing key pair.
|
|
|
{
|
|
|
printf("Creating new keypair.\n"); fflush(stdout);
|
|
|
- ret_status = create_and_seal_signing_key_pair_to_disk(enclave_id, fd);
|
|
|
+ ret_status = create_and_seal_signing_key_pair_to_disk(enclave_id, filename);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- printf("Unsealing keypair.\n"); fflush(stdout);
|
|
|
- ret_status = unseal_signing_key_pair_from_disk(enclave_id, fd, sealed_key_size);
|
|
|
+ printf("Unsealing keypair of size %d.\n", sealed_key_size); fflush(stdout);
|
|
|
+ ret_status = unseal_signing_key_pair_from_disk(enclave_id, filename, sealed_key_size);
|
|
|
}
|
|
|
- close(fd);
|
|
|
+
|
|
|
return ret_status;
|
|
|
}
|
|
|
}
|