diff options
author | Lans Zhang <jia.zhang@windriver.com> | 2017-07-11 12:54:40 +0800 |
---|---|---|
committer | Lans Zhang <jia.zhang@windriver.com> | 2017-07-11 12:54:40 +0800 |
commit | 6ab1f5473202d135c5e813b5f0af629a6f6a2c41 (patch) | |
tree | 9e6c26d8578fd4a18d8dc2af7d950d45c5a38b7c | |
parent | b9f73cac1653c49e465785f2832732302d980a84 (diff) | |
download | meta-secure-core-6ab1f5473202d135c5e813b5f0af629a6f6a2c41.tar.gz |
create-user-key-store.sh: clean up subject and support password protection for private key
Signed-off-by: Lans Zhang <jia.zhang@windriver.com>
-rwxr-xr-x | meta-signing-key/scripts/create-user-key-store.sh | 35 |
1 files changed, 23 insertions, 12 deletions
diff --git a/meta-signing-key/scripts/create-user-key-store.sh b/meta-signing-key/scripts/create-user-key-store.sh index db05f4f..e2a246e 100755 --- a/meta-signing-key/scripts/create-user-key-store.sh +++ b/meta-signing-key/scripts/create-user-key-store.sh | |||
@@ -64,6 +64,7 @@ ca_sign() { | |||
64 | local ca_key_dir="$3" | 64 | local ca_key_dir="$3" |
65 | local ca_key_name="$4" | 65 | local ca_key_name="$4" |
66 | local subject="$5" | 66 | local subject="$5" |
67 | local encrypted="$6" | ||
67 | 68 | ||
68 | # Self signing ? | 69 | # Self signing ? |
69 | if [ "$key_name" = "$ca_key_name" ]; then | 70 | if [ "$key_name" = "$ca_key_name" ]; then |
@@ -73,11 +74,21 @@ ca_sign() { | |||
73 | -keyout "$key_dir/$key_name.key" \ | 74 | -keyout "$key_dir/$key_name.key" \ |
74 | -out "$key_dir/$key_name.crt" | 75 | -out "$key_dir/$key_name.crt" |
75 | else | 76 | else |
76 | openssl req -new -newkey rsa:2048 \ | 77 | if [ -z "$encrypted" ]; then |
77 | -sha256 -nodes \ | 78 | openssl req -new -newkey rsa:2048 \ |
78 | -subj "$subject" \ | 79 | -sha256 -nodes \ |
79 | -keyout "$key_dir/$key_name.key" \ | 80 | -subj "$subject" \ |
80 | -out "$key_dir/$key_name.csr" | 81 | -keyout "$key_dir/$key_name.key" \ |
82 | -out "$key_dir/$key_name.csr" | ||
83 | else | ||
84 | # Prompt user to type the password | ||
85 | openssl genrsa -des3 -out "$key_dir/$key_name.key" 2048 | ||
86 | |||
87 | openssl req -new -sha256 \ | ||
88 | -subj "$subject" \ | ||
89 | -key "$key_dir/$key_name.key" \ | ||
90 | -out "$key_dir/$key_name.csr" | ||
91 | fi | ||
81 | 92 | ||
82 | local ca_cert="$ca_key_dir/$ca_key_name.crt" | 93 | local ca_cert="$ca_key_dir/$ca_key_name.crt" |
83 | local ca_cert_form="PEM" | 94 | local ca_cert_form="PEM" |
@@ -105,11 +116,11 @@ create_uefi_sb_user_keys() { | |||
105 | [ ! -d "$key_dir" ] && mkdir -p "$key_dir" | 116 | [ ! -d "$key_dir" ] && mkdir -p "$key_dir" |
106 | 117 | ||
107 | ca_sign "$key_dir" PK "$key_dir" PK \ | 118 | ca_sign "$key_dir" PK "$key_dir" PK \ |
108 | "/CN=PK Certificate for $USER@`hostname`/" | 119 | "/CN=PK Certificate/" |
109 | ca_sign "$key_dir" KEK "$key_dir" PK \ | 120 | ca_sign "$key_dir" KEK "$key_dir" PK \ |
110 | "/CN=KEK Certificate for $USER@`hostname`" | 121 | "/CN=KEK Certificate" |
111 | ca_sign "$key_dir" DB "$key_dir" KEK \ | 122 | ca_sign "$key_dir" DB "$key_dir" KEK \ |
112 | "/CN=DB Certificate for $USER@`hostname`" | 123 | "/CN=DB Certificate" |
113 | } | 124 | } |
114 | 125 | ||
115 | create_mok_sb_user_keys() { | 126 | create_mok_sb_user_keys() { |
@@ -118,9 +129,9 @@ create_mok_sb_user_keys() { | |||
118 | [ ! -d "$key_dir" ] && mkdir -p "$key_dir" | 129 | [ ! -d "$key_dir" ] && mkdir -p "$key_dir" |
119 | 130 | ||
120 | ca_sign "$key_dir" shim_cert "$key_dir" shim_cert \ | 131 | ca_sign "$key_dir" shim_cert "$key_dir" shim_cert \ |
121 | "/CN=Shim Certificate for $USER@`hostname`/" | 132 | "/CN=Shim Certificate/" |
122 | ca_sign "$key_dir" vendor_cert "$key_dir" vendor_cert \ | 133 | ca_sign "$key_dir" vendor_cert "$key_dir" vendor_cert \ |
123 | "/CN=Vendor Certificate for $USER@`hostname`/" | 134 | "/CN=Vendor Certificate/" |
124 | } | 135 | } |
125 | 136 | ||
126 | create_system_user_key() { | 137 | create_system_user_key() { |
@@ -129,7 +140,7 @@ create_system_user_key() { | |||
129 | [ ! -d "$key_dir" ] && mkdir -p "$key_dir" | 140 | [ ! -d "$key_dir" ] && mkdir -p "$key_dir" |
130 | 141 | ||
131 | ca_sign "$key_dir" system_trusted_key "$key_dir" system_trusted_key \ | 142 | ca_sign "$key_dir" system_trusted_key "$key_dir" system_trusted_key \ |
132 | "/CN=System Trusted Certificate for $USER@`hostname`/" | 143 | "/CN=System Trusted Certificate/" |
133 | } | 144 | } |
134 | 145 | ||
135 | create_ima_user_key() { | 146 | create_ima_user_key() { |
@@ -138,7 +149,7 @@ create_ima_user_key() { | |||
138 | [ ! -d "$key_dir" ] && mkdir -p "$key_dir" | 149 | [ ! -d "$key_dir" ] && mkdir -p "$key_dir" |
139 | 150 | ||
140 | ca_sign "$key_dir" x509_ima "$SYSTEM_KEYS_DIR" system_trusted_key \ | 151 | ca_sign "$key_dir" x509_ima "$SYSTEM_KEYS_DIR" system_trusted_key \ |
141 | "/CN=IMA Trusted Certificate for $USER@`hostname`/" | 152 | "/CN=IMA Trusted Certificate/" "enc" |
142 | 153 | ||
143 | pem2der "$key_dir/x509_ima.crt" | 154 | pem2der "$key_dir/x509_ima.crt" |
144 | rm -f "$key_dir/x509_ima.crt" | 155 | rm -f "$key_dir/x509_ima.crt" |