summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJia Zhang <lans.zhang2008@gmail.com>2017-08-20 15:06:22 +0800
committerJia Zhang <lans.zhang2008@gmail.com>2017-08-20 15:06:22 +0800
commitcbdefad44c474bd8a6c987442ccc0d6d11234c68 (patch)
tree3c5df8d8f1f8097f559b9cf18621631258c281b1
parent038aa54bc28fa4c4c19a711596260eb8bb8576be (diff)
downloadmeta-secure-core-cbdefad44c474bd8a6c987442ccc0d6d11234c68.tar.gz
create-user-key-store.sh: support gpg 2.x used to generate rpm signing key
Signed-off-by: Jia Zhang <lans.zhang2008@gmail.com>
-rwxr-xr-xmeta-signing-key/scripts/create-user-key-store.sh44
1 files changed, 26 insertions, 18 deletions
diff --git a/meta-signing-key/scripts/create-user-key-store.sh b/meta-signing-key/scripts/create-user-key-store.sh
index 85d6965..12da2e7 100755
--- a/meta-signing-key/scripts/create-user-key-store.sh
+++ b/meta-signing-key/scripts/create-user-key-store.sh
@@ -188,21 +188,28 @@ create_ima_user_key() {
188 188
189create_rpm_user_key() { 189create_rpm_user_key() {
190 local gpg_ver=`gpg --version | head -1 | awk '{ print $3 }' | awk -F. '{ print $1 }'` 190 local gpg_ver=`gpg --version | head -1 | awk '{ print $3 }' | awk -F. '{ print $1 }'`
191
192 if [ x"$gpg_ver" != x"1" ]; then
193 echo "gpg version 2 is not supported"
194 exit 1
195 fi
196
197 local key_dir="$RPM_KEYS_DIR" 191 local key_dir="$RPM_KEYS_DIR"
198 192
199 [ ! -d "$key_dir" ] && mkdir -p "$key_dir" 193 [ ! -d "$key_dir" ] && mkdir -m 0700 -p "$key_dir"
200 194
201 local gpg_key_name="SecureCore" 195 local gpg_key_name="SecureCore"
202 local priv_key="$key_dir/RPM-GPG-PRIVKEY-$gpg_key_name" 196 local priv_key="$key_dir/RPM-GPG-PRIVKEY-$gpg_key_name"
203 local pub_key="$key_dir/RPM-GPG-KEY-$gpg_key_name" 197 local pub_key="$key_dir/RPM-GPG-KEY-$gpg_key_name"
204 198
205 cat >"$key_dir/gen_rpm_keyring" <<EOF 199 if [ "$gpg_ver" == "2" ]; then
200 gpg --homedir "$key_dir" --quick-generate-key --batch \
201 "$gpg_key_name" default default never
202
203 gpg --homedir "$key_dir" --export --armor "$gpg_key_name" > "$pub_key"
204
205 gpg --homedir "$key_dir" --export-secret-keys --armor "$gpg_key_name" > "$priv_key"
206
207 cd "$key_dir"
208 rm -rf openpgp-revocs.d private-keys-v1.d pubring.kbx* \
209 trustdb.gpg
210 cd -
211 else
212 cat >"$key_dir/gen_rpm_keyring" <<EOF
206Key-Type: RSA 213Key-Type: RSA
207Key-Length: 2048 214Key-Length: 2048
208Name-Real: $gpg_key_name 215Name-Real: $gpg_key_name
@@ -215,22 +222,23 @@ Expire-Date: 0
215%echo RPM keyring $gpg_key_name created 222%echo RPM keyring $gpg_key_name created
216EOF 223EOF
217 224
218 gpg --batch --gen-key "$key_dir/gen_rpm_keyring" 225 gpg --batch --gen-key "$key_dir/gen_rpm_keyring"
219 226
220 gpg="gpg --no-default-keyring --secret-keyring \ 227 gpg="gpg --no-default-keyring --secret-keyring \
221 $priv_key.sec --keyring $pub_key.pub" 228 $priv_key.sec --keyring $pub_key.pub"
222 229
223 $gpg --list-secret-keys 230 $gpg --list-secret-keys
224 231
225 print_error "Please type passwd to modify the passphrase, and type quit to exit" 232 print_error "Please type passwd to modify the passphrase, and type quit to exit"
226 233
227 $gpg --edit-key "$gpg_key_name" 234 $gpg --edit-key "$gpg_key_name"
228 235
229 $gpg --export --armor "$gpg_key_name" > "$pub_key" 236 $gpg --export --armor "$gpg_key_name" > "$pub_key"
230 $gpg --export-secret-keys --armor "$gpg_key_name" > "$priv_key" 237 $gpg --export-secret-keys --armor "$gpg_key_name" > "$priv_key"
231 238
232 rm -f "$key_dir/gen_rpm_keyring" 239 rm -f "$key_dir/gen_rpm_keyring"
233 rm -f "$priv_key.sec" "$pub_key.pub" 240 rm -f "$priv_key.sec" "$pub_key.pub"
241 fi
234} 242}
235 243
236create_user_keys() { 244create_user_keys() {