summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLans Zhang <jia.zhang@windriver.com>2017-07-11 12:54:40 +0800
committerLans Zhang <jia.zhang@windriver.com>2017-07-11 12:54:40 +0800
commit6ab1f5473202d135c5e813b5f0af629a6f6a2c41 (patch)
tree9e6c26d8578fd4a18d8dc2af7d950d45c5a38b7c
parentb9f73cac1653c49e465785f2832732302d980a84 (diff)
downloadmeta-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-xmeta-signing-key/scripts/create-user-key-store.sh35
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
115create_mok_sb_user_keys() { 126create_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
126create_system_user_key() { 137create_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
135create_ima_user_key() { 146create_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"