Fix checkList bug on partial validate
[platform/core/security/cert-svc.git] / etc / db / initialize_store_db.sh
1 #!/bin/bash
2
3 DB_PATH=$1
4 SYSTEM_SSL_DIR=$2
5
6 ROOT_CERT_SQL=root-cert.sql
7
8 function get_field()
9 {
10         local fname=$1
11         local field=$2
12
13         echo "`openssl x509 -in $fname -subject -noout -nameopt multiline \
14                         | grep $field \
15                         | cut -f 2 -d =`"
16 }
17
18 function get_common_name()
19 {
20         local fname=$1
21         local common_name=
22
23         common_name=`get_field $fname commonName`
24         if [[ $common_name == "" ]]; then
25                 common_name=`get_field $fname organizationUnitName`
26         fi
27         if [[ $common_name == "" ]]; then
28                 common_name=`get_field $fname organizationName`
29         fi
30         if [[ $common_name == "" ]]; then
31                 common_name=`get_field $fname emailAddress`
32         fi
33
34         echo "${common_name:1}" # cut first whitespace
35 }
36
37 function initialize_store_version()
38 {
39         sqlite3 $DB_PATH "INSERT INTO schema_info (version, description) \
40                                           VALUES (2, 'Tizen 3.0');"
41 }
42
43 function initialize_store_data()
44 {
45         echo "BEGIN TRANSACTION;" >> $ROOT_CERT_SQL
46         for fname in `find $SYSTEM_SSL_DIR/* | sort`
47         do
48                 gname=`echo ${fname##*/}`
49                 if [[ ! $gname =~ ^[0-9a-z]{8}\.[0-9]$ ]]; then
50                         continue
51                 fi
52
53                 cert=`openssl x509 -in $fname -outform PEM`
54                 subject_hash=`openssl x509 -in $fname -subject_hash -noout`
55                 subject_hash_old=`openssl x509 -in $fname -subject_hash_old -noout`
56                 common_name=`get_common_name $fname`
57
58                 echo "INSERT INTO ssl \
59                                 (gname, certificate, file_hash, subject_hash, \
60                                 common_name, enabled, is_root_app_enabled) VALUES \
61                                 (\"$gname\", \"$cert\", \"$subject_hash\", \"$subject_hash_old\", \
62                                 \"$common_name\", 1, 1);" >> $ROOT_CERT_SQL
63         done
64         echo "END TRANSACTION;" >> $ROOT_CERT_SQL
65 }
66
67 touch $ROOT_CERT_SQL
68
69 initialize_store_version
70 initialize_store_data
71
72 cat $ROOT_CERT_SQL | sqlite3 $DB_PATH
73
74 rm $ROOT_CERT_SQL