aboutsummaryrefslogtreecommitdiffstats
path: root/tpm-util/import/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'tpm-util/import/main.c')
-rw-r--r--tpm-util/import/main.c55
1 files changed, 31 insertions, 24 deletions
diff --git a/tpm-util/import/main.c b/tpm-util/import/main.c
index c498f6c..8f66fd6 100644
--- a/tpm-util/import/main.c
+++ b/tpm-util/import/main.c
@@ -19,17 +19,14 @@
//
#include <stdio.h>
-#include <stdlib.h>
+#include <stdlib.h>
#include <string.h>
-#include <unistd.h>
+#include <unistd.h>
#include <sapi/tpm20.h>
-#include "tpm_wrapper.h"
-#include "util.h"
-
-char* tpm_pwd = "";
-int tpm_pwd_len = 0;
+#include "tpm_wrapper.h"
+#include "util.h"
void PrintHelp();
char version[] = "0.1";
@@ -37,10 +34,11 @@ char version[] = "0.1";
void PrintHelp()
{
printf(
- "OSSL key to tpm import tool, Version %s\nUsage:"
- "./ossl_tpm_import "
- "[-dupPub out_dupPubFile] [-dupPriv out_dupPrivFile] [-dupSymSeed out_dupSymSeedFile] [-dupEncKey out_dupEncKeyFile]"
- "[-pub out_keyPub] [-priv out_KeyPriv]\n"
+ "OSSL key to tpm import tool, Version %s\nUsage:"
+ "./ossl_tpm_import "
+ "[-dupPub out_dupPubFile] [-dupPriv out_dupPrivFile] [-dupSymSeed out_dupSymSeedFile] "
+ "[-dupEncKey out_dupEncKeyFile] [-password keyPassword] "
+ "[-pub out_keyPub] [-priv out_KeyPriv] [-H primaryKeyHandle]\n"
"\n"
, version);
}
@@ -61,10 +59,11 @@ int main(int argc, char* argv[])
int dupSymSeed_flag = 0;
char dupEncKey_Filename[256];
int dupEncKey_flag = 0;
- TPM2B_DATA encryptionKey;
- TPM2B_PUBLIC swKeyPublic;
- TPM2B_PRIVATE swKeyPrivate;
- TPM2B_ENCRYPTED_SECRET encSymSeed;
+ char keyPassword[256] = {0};
+ TPM2B_DATA encryptionKey;
+ TPM2B_PUBLIC swKeyPublic;
+ TPM2B_PRIVATE swKeyPrivate;
+ TPM2B_ENCRYPTED_SECRET encSymSeed;
// SW Key Import O/P variables
char pub_Filename[256];
@@ -128,6 +127,15 @@ int main(int argc, char* argv[])
}
dupEncKey_flag = 1;
}
+ else if( 0 == strcmp( argv[count], "-password" ) ) {
+ count++;
+ // Read no more than a fixed length of characters
+ if ( (1 != sscanf(argv[count], "%255s", keyPassword )) )
+ {
+ PrintHelp();
+ return 1;
+ }
+ }
else if( 0 == strcmp( argv[count], "-pub" ) ) {
count++;
if( (1 != sscanf( argv[count], "%s", pub_Filename )) )
@@ -170,11 +178,11 @@ int main(int argc, char* argv[])
// For TPM Import functionality, check all input params are present
if( (!dupPub_flag) ||
- (!dupPriv_flag) ||
- (!dupSymSeed_flag) ||
- (!dupEncKey_flag) ||
- (!pub_flag) ||
- (!priv_flag)
+ (!dupPriv_flag) ||
+ (!dupSymSeed_flag) ||
+ (!dupEncKey_flag) ||
+ (!pub_flag) ||
+ (!priv_flag)
) {
printf("Error: One or more Inputs for TPM import functionality is missing ! \n");
return -1;
@@ -215,9 +223,9 @@ int main(int argc, char* argv[])
TPM2B_PRIVATE importPrivate;
INIT_SIMPLE_TPM2B_SIZE(importPrivate);
- rval = swKeyTpmImport(sysContext, primaryKeyHandle,
- &encryptionKey, &swKeyPublic, &swKeyPrivate, &encSymSeed,
- tpm_pwd, tpm_pwd_len,
+ rval = swKeyTpmImport(sysContext, primaryKeyHandle,
+ &encryptionKey, &swKeyPublic, &swKeyPrivate, &encSymSeed,
+ keyPassword, strlen(keyPassword),
&importPrivate);
if(rval != 0) {
printf("\nswKeyTpmImport failed: 0x%x ! \n", rval);
@@ -241,4 +249,3 @@ end:
return rval;
}
-