Hex Artifact Content

Artifact e4223940e0d23753ec77ab2eb3f8800f76e18283:


0000: 23 21 20 2f 62 69 6e 2f 62 61 73 68 0a 0a 66 6f  #! /bin/bash..fo
0010: 72 20 66 69 6c 65 20 69 6e 20 22 24 40 22 3b 20  r file in "$@"; 
0020: 64 6f 0a 09 69 66 20 5b 20 21 20 2d 66 20 22 24  do..if [ ! -f "$
0030: 7b 66 69 6c 65 7d 22 20 5d 3b 20 74 68 65 6e 0a  {file}" ]; then.
0040: 09 09 63 6f 6e 74 69 6e 75 65 0a 09 66 69 0a 0a  ..continue..fi..
0050: 09 72 6d 20 2d 66 20 74 6d 70 66 69 6c 65 2e 78  .rm -f tmpfile.x
0060: 35 30 39 0a 09 69 66 20 21 20 6f 70 65 6e 73 73  509..if ! openss
0070: 6c 20 78 35 30 39 20 2d 69 6e 20 22 24 7b 66 69  l x509 -in "${fi
0080: 6c 65 7d 22 20 2d 69 6e 66 6f 72 6d 20 70 65 6d  le}" -inform pem
0090: 20 2d 6e 6f 6f 75 74 20 2d 63 68 65 63 6b 65 6e   -noout -checken
00a0: 64 20 30 20 3e 2f 64 65 76 2f 6e 75 6c 6c 20 32  d 0 >/dev/null 2
00b0: 3e 2f 64 65 76 2f 6e 75 6c 6c 3b 20 74 68 65 6e  >/dev/null; then
00c0: 0a 09 09 65 63 68 6f 20 22 77 61 72 6e 69 6e 67  ...echo "warning
00d0: 3a 20 53 6b 69 70 70 69 6e 67 20 5c 22 24 7b 66  : Skipping \"${f
00e0: 69 6c 65 7d 5c 22 20 61 73 20 69 74 20 69 73 20  ile}\" as it is 
00f0: 69 6e 76 61 6c 69 64 20 6f 72 20 65 78 70 69 72  invalid or expir
0100: 65 64 2e 22 20 3e 26 32 0a 0a 09 09 63 6f 6e 74  ed." >&2....cont
0110: 69 6e 75 65 0a 09 66 69 0a 0a 09 6f 70 65 6e 73  inue..fi...opens
0120: 73 6c 20 78 35 30 39 20 2d 69 6e 20 22 24 7b 66  sl x509 -in "${f
0130: 69 6c 65 7d 22 20 2d 6f 75 74 20 74 6d 70 66 69  ile}" -out tmpfi
0140: 6c 65 2e 78 35 30 39 20 2d 69 6e 66 6f 72 6d 20  le.x509 -inform 
0150: 70 65 6d 20 2d 6f 75 74 66 6f 72 6d 20 64 65 72  pem -outform der
0160: 0a 0a 09 70 75 62 6b 65 79 6c 65 6e 3d 22 24 28  ...pubkeylen="$(
0170: 6f 70 65 6e 73 73 6c 20 78 35 30 39 20 2d 69 6e  openssl x509 -in
0180: 20 74 6d 70 66 69 6c 65 2e 78 35 30 39 20 2d 69   tmpfile.x509 -i
0190: 6e 66 6f 72 6d 20 64 65 72 20 2d 74 65 78 74 20  nform der -text 
01a0: 2d 6e 6f 6f 75 74 20 7c 20 67 72 65 70 20 27 50  -noout | grep 'P
01b0: 75 62 6c 69 63 5b 2d 20 5d 4b 65 79 3a 27 20 7c  ublic[- ]Key:' |
01c0: 20 73 65 64 20 27 73 40 5e 2e 2a 28 5c 28 5b 30   sed 's@^.*(\([0
01d0: 2d 39 5d 5b 30 2d 39 5d 2a 5c 29 20 62 69 74 29  -9][0-9]*\) bit)
01e0: 2e 2a 24 40 5c 31 40 27 29 22 0a 09 63 65 72 74  .*$@\1@')"..cert
01f0: 6c 65 6e 3d 22 24 28 63 61 74 20 74 6d 70 66 69  len="$(cat tmpfi
0200: 6c 65 2e 78 35 30 39 20 7c 20 77 63 20 2d 63 20  le.x509 | wc -c 
0210: 7c 20 61 77 6b 20 27 7b 20 70 72 69 6e 74 20 24  | awk '{ print $
0220: 31 20 7d 27 29 22 0a 09 63 65 72 74 3d 22 24 28  1 }')"..cert="$(
0230: 28 20 63 61 74 20 74 6d 70 66 69 6c 65 2e 78 35  ( cat tmpfile.x5
0240: 30 39 20 7c 20 6f 64 20 2d 74 20 78 31 20 7c 20  09 | od -t x1 | 
0250: 63 75 74 20 2d 63 20 39 2d 20 7c 20 74 72 20 22  cut -c 9- | tr "
0260: 5c 6e 22 20 27 20 27 3b 20 65 63 68 6f 20 29 20  \n" ' '; echo ) 
0270: 7c 20 73 65 64 20 27 73 40 20 40 40 67 3b 73 40  | sed 's@ @@g;s@
0280: 2e 2e 40 5c 5c 78 26 40 67 27 29 22 0a 0a 09 63  ..@\\x&@g')"...c
0290: 61 74 20 3c 3c 20 5f 45 4f 46 5f 0a 09 2f 2a 20  at << _EOF_../* 
02a0: 24 7b 66 69 6c 65 7d 20 2a 2f 0a 09 7b 0a 09 09  ${file} */..{...
02b0: 43 41 43 4b 45 59 5f 49 44 5f 54 59 50 45 5f 43  CACKEY_ID_TYPE_C
02c0: 45 52 54 5f 4f 4e 4c 59 2c 20 2f 2a 20 69 64 5f  ERT_ONLY, /* id_
02d0: 74 79 70 65 20 2a 2f 0a 09 09 24 7b 63 65 72 74  type */...${cert
02e0: 6c 65 6e 7d 2c 20 2f 2a 20 63 65 72 74 69 66 69  len}, /* certifi
02f0: 63 61 74 65 5f 6c 65 6e 20 2a 2f 0a 09 09 28 75  cate_len */...(u
0300: 6e 73 69 67 6e 65 64 20 63 68 61 72 20 2a 29 20  nsigned char *) 
0310: 22 24 7b 63 65 72 74 7d 22 2c 20 2f 2a 20 63 65  "${cert}", /* ce
0320: 72 74 69 66 69 63 61 74 65 20 2a 2f 0a 09 09 24  rtificate */...$
0330: 7b 70 75 62 6b 65 79 6c 65 6e 7d 20 2f 2a 20 6b  {pubkeylen} /* k
0340: 65 79 73 69 7a 65 20 2a 2f 0a 09 7d 2c 0a 5f 45  eysize */..},._E
0350: 4f 46 5f 0a 64 6f 6e 65 0a 0a 72 6d 20 2d 66 20  OF_.done..rm -f 
0360: 74 6d 70 66 69 6c 65 2e 78 35 30 39 0a           tmpfile.x509.