Hex Artifact Content

Artifact 1cd87f2aca1acf904a957c00dc15d533e3dd33e3:


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 72 6d 20 2d 66 20 74 6d 70 66 69 6c  do..rm -f tmpfil
0030: 65 2e 78 35 30 39 0a 09 69 66 20 21 20 6f 70 65  e.x509..if ! ope
0040: 6e 73 73 6c 20 78 35 30 39 20 2d 69 6e 20 22 24  nssl x509 -in "$
0050: 7b 66 69 6c 65 7d 22 20 2d 69 6e 66 6f 72 6d 20  {file}" -inform 
0060: 70 65 6d 20 2d 6e 6f 6f 75 74 20 2d 63 68 65 63  pem -noout -chec
0070: 6b 65 6e 64 20 30 20 3e 2f 64 65 76 2f 6e 75 6c  kend 0 >/dev/nul
0080: 6c 20 32 3e 2f 64 65 76 2f 6e 75 6c 6c 3b 20 74  l 2>/dev/null; t
0090: 68 65 6e 0a 09 09 65 63 68 6f 20 22 77 61 72 6e  hen...echo "warn
00a0: 69 6e 67 3a 20 53 6b 69 70 70 69 6e 67 20 5c 22  ing: Skipping \"
00b0: 24 7b 66 69 6c 65 7d 5c 22 20 61 73 20 69 74 20  ${file}\" as it 
00c0: 69 73 20 69 6e 76 61 6c 69 64 20 6f 72 20 65 78  is invalid or ex
00d0: 70 69 72 65 64 2e 22 20 3e 26 32 0a 0a 09 09 63  pired." >&2....c
00e0: 6f 6e 74 69 6e 75 65 0a 09 66 69 0a 0a 09 6f 70  ontinue..fi...op
00f0: 65 6e 73 73 6c 20 78 35 30 39 20 2d 69 6e 20 22  enssl x509 -in "
0100: 24 7b 66 69 6c 65 7d 22 20 2d 6f 75 74 20 74 6d  ${file}" -out tm
0110: 70 66 69 6c 65 2e 78 35 30 39 20 2d 69 6e 66 6f  pfile.x509 -info
0120: 72 6d 20 70 65 6d 20 2d 6f 75 74 66 6f 72 6d 20  rm pem -outform 
0130: 64 65 72 0a 0a 09 70 75 62 6b 65 79 6c 65 6e 3d  der...pubkeylen=
0140: 22 24 28 6f 70 65 6e 73 73 6c 20 78 35 30 39 20  "$(openssl x509 
0150: 2d 69 6e 20 74 6d 70 66 69 6c 65 2e 78 35 30 39  -in tmpfile.x509
0160: 20 2d 69 6e 66 6f 72 6d 20 64 65 72 20 2d 74 65   -inform der -te
0170: 78 74 20 2d 6e 6f 6f 75 74 20 7c 20 67 72 65 70  xt -noout | grep
0180: 20 27 52 53 41 20 50 75 62 6c 69 63 20 4b 65 79   'RSA Public Key
0190: 3a 27 20 7c 20 73 65 64 20 27 73 40 5e 2e 2a 28  :' | sed 's@^.*(
01a0: 5c 28 5b 30 2d 39 5d 5b 30 2d 39 5d 2a 5c 29 20  \([0-9][0-9]*\) 
01b0: 62 69 74 29 2e 2a 24 40 5c 31 40 27 29 22 0a 09  bit).*$@\1@')"..
01c0: 63 65 72 74 6c 65 6e 3d 22 24 28 63 61 74 20 74  certlen="$(cat t
01d0: 6d 70 66 69 6c 65 2e 78 35 30 39 20 7c 20 77 63  mpfile.x509 | wc
01e0: 20 2d 63 29 22 0a 09 63 65 72 74 3d 22 24 28 28   -c)"..cert="$((
01f0: 20 63 61 74 20 74 6d 70 66 69 6c 65 2e 78 35 30   cat tmpfile.x50
0200: 39 20 7c 20 6f 64 20 2d 74 20 78 31 20 7c 20 63  9 | od -t x1 | c
0210: 75 74 20 2d 63 20 39 2d 20 7c 20 74 72 20 22 5c  ut -c 9- | tr "\
0220: 6e 22 20 27 20 27 3b 20 65 63 68 6f 20 29 20 7c  n" ' '; echo ) |
0230: 20 73 65 64 20 27 73 40 20 40 40 67 3b 73 40 2e   sed 's@ @@g;s@.
0240: 2e 40 5c 5c 78 26 40 67 27 29 22 0a 0a 09 63 61  .@\\x&@g')"...ca
0250: 74 20 3c 3c 20 5f 45 4f 46 5f 0a 09 7b 0a 09 09  t << _EOF_..{...
0260: 43 41 43 4b 45 59 5f 49 44 5f 54 59 50 45 5f 43  CACKEY_ID_TYPE_C
0270: 45 52 54 5f 4f 4e 4c 59 2c 20 2f 2a 20 69 64 5f  ERT_ONLY, /* id_
0280: 74 79 70 65 20 2a 2f 0a 09 09 24 7b 63 65 72 74  type */...${cert
0290: 6c 65 6e 7d 2c 20 2f 2a 20 63 65 72 74 69 66 69  len}, /* certifi
02a0: 63 61 74 65 5f 6c 65 6e 20 2a 2f 0a 09 09 28 75  cate_len */...(u
02b0: 6e 73 69 67 6e 65 64 20 63 68 61 72 20 2a 29 20  nsigned char *) 
02c0: 22 24 7b 63 65 72 74 7d 22 2c 20 2f 2a 20 63 65  "${cert}", /* ce
02d0: 72 74 69 66 69 63 61 74 65 20 2a 2f 0a 09 09 24  rtificate */...$
02e0: 7b 70 75 62 6b 65 79 6c 65 6e 7d 20 2f 2a 20 6b  {pubkeylen} /* k
02f0: 65 79 73 69 7a 65 20 2a 2f 0a 09 7d 2c 0a 5f 45  eysize */..},._E
0300: 4f 46 5f 0a 64 6f 6e 65 0a 0a 72 6d 20 2d 66 20  OF_.done..rm -f 
0310: 74 6d 70 66 69 6c 65 2e 78 35 30 39 0a           tmpfile.x509.