Hex Artifact Content

Artifact dc0fd6eff03a47d42786ff08378764527c7f61a8:


0000: 2f 2a 0a 20 2a 20 43 41 43 4b 65 79 20 43 68 72  /*. * CACKey Chr
0010: 6f 6d 65 4f 53 20 63 68 72 6f 6d 65 2e 63 65 72  omeOS chrome.cer
0020: 74 69 66 69 63 61 74 65 50 72 6f 76 69 64 65 72  tificateProvider
0030: 20 49 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 0a   Implementation.
0040: 20 2a 2f 0a 0a 66 75 6e 63 74 69 6f 6e 20 6f 6e   */..function on
0050: 43 65 72 74 69 66 69 63 61 74 65 73 52 65 6a 65  CertificatesReje
0060: 63 74 65 64 28 72 65 6a 65 63 74 65 64 43 65 72  cted(rejectedCer
0070: 74 73 29 20 7b 0a 09 2f 2f 20 49 66 20 63 65 72  ts) {..// If cer
0080: 74 69 66 69 63 61 74 65 73 20 77 65 72 65 20 72  tificates were r
0090: 65 6a 65 63 74 65 64 20 62 79 20 74 68 65 20 41  ejected by the A
00a0: 50 49 2c 20 6c 6f 67 20 61 6e 20 65 72 72 6f 72  PI, log an error
00b0: 2c 20 66 6f 72 20 65 78 61 6d 70 6c 65 2e 0a 09  , for example...
00c0: 63 6f 6e 73 6f 6c 65 2e 65 72 72 6f 72 28 72 65  console.error(re
00d0: 6a 65 63 74 65 64 43 65 72 74 73 2e 6c 65 6e 67  jectedCerts.leng
00e0: 74 68 20 2b 20 27 20 63 65 72 74 69 66 69 63 61  th + ' certifica
00f0: 74 65 73 20 77 65 72 65 20 72 65 6a 65 63 74 65  tes were rejecte
0100: 64 2e 27 29 3b 0a 09 72 65 74 75 72 6e 3b 0a 7d  d.');..return;.}
0110: 0a 0a 66 75 6e 63 74 69 6f 6e 20 63 61 63 6b 65  ..function cacke
0120: 79 4c 69 73 74 43 65 72 74 69 66 69 63 61 74 65  yListCertificate
0130: 73 28 63 68 72 6f 6d 65 43 61 6c 6c 62 61 63 6b  s(chromeCallback
0140: 29 20 7b 0a 09 76 61 72 20 63 65 72 74 69 66 69  ) {..var certifi
0150: 63 61 74 65 73 20 3d 20 5b 5d 3b 0a 0a 09 63 65  cates = [];...ce
0160: 72 74 69 66 69 63 61 74 65 73 2e 70 75 73 68 28  rtificates.push(
0170: 0a 09 09 7b 0a 09 09 09 63 65 72 74 69 66 69 63  ...{....certific
0180: 61 74 65 3a 20 6e 65 77 20 55 49 6e 74 38 41 72  ate: new UInt8Ar
0190: 72 61 79 28 29 2c 0a 09 09 09 73 75 70 70 6f 72  ray(),....suppor
01a0: 74 65 64 48 61 73 68 65 73 3a 20 5b 27 53 48 41  tedHashes: ['SHA
01b0: 31 27 2c 20 27 53 48 41 32 35 36 27 5d 0a 09 09  1', 'SHA256']...
01c0: 7d 0a 09 29 3b 0a 0a 09 63 68 72 6f 6d 65 43 61  }..);...chromeCa
01d0: 6c 6c 62 61 63 6b 28 63 65 72 74 69 66 69 63 61  llback(certifica
01e0: 74 65 73 2c 0a 09 09 66 75 6e 63 74 69 6f 6e 28  tes,...function(
01f0: 72 65 6a 65 63 74 65 64 43 65 72 74 73 29 20 7b  rejectedCerts) {
0200: 0a 09 09 09 69 66 20 28 63 68 72 6f 6d 65 2e 72  ....if (chrome.r
0210: 75 6e 74 69 6d 65 2e 6c 61 73 74 45 72 72 6f 72  untime.lastError
0220: 29 20 7b 0a 09 09 09 09 72 65 74 75 72 6e 3b 0a  ) {.....return;.
0230: 09 09 09 7d 0a 0a 09 09 09 69 66 20 28 72 65 6a  ...}.....if (rej
0240: 65 63 74 65 64 43 65 72 74 73 2e 6c 65 6e 67 74  ectedCerts.lengt
0250: 68 20 21 3d 3d 20 30 29 20 7b 0a 09 09 09 09 6f  h !== 0) {.....o
0260: 6e 43 65 72 74 69 66 69 63 61 74 65 73 52 65 6a  nCertificatesRej
0270: 65 63 74 65 64 28 72 65 6a 65 63 74 65 64 43 65  ected(rejectedCe
0280: 72 74 73 29 3b 0a 09 09 09 7d 0a 0a 09 09 09 72  rts);....}.....r
0290: 65 74 75 72 6e 3b 0a 09 09 7d 0a 09 29 3b 0a 0a  eturn;...}..);..
02a0: 09 72 65 74 75 72 6e 3b 0a 7d 0a 0a 66 75 6e 63  .return;.}..func
02b0: 74 69 6f 6e 20 63 61 63 6b 65 79 53 69 67 6e 4d  tion cackeySignM
02c0: 65 73 73 61 67 65 28 73 69 67 6e 52 65 71 75 65  essage(signReque
02d0: 73 74 2c 20 63 68 72 6f 6d 65 43 61 6c 6c 62 61  st, chromeCallba
02e0: 63 6b 29 20 7b 0a 09 2f 2a 20 58 58 58 3a 54 4f  ck) {../* XXX:TO
02f0: 44 4f 3a 20 49 6d 70 6c 65 6d 65 6e 74 20 74 68  DO: Implement th
0300: 69 73 20 2a 2f 0a 09 63 68 72 6f 6d 65 43 61 6c  is */..chromeCal
0310: 6c 62 61 63 6b 28 29 3b 0a 0a 09 72 65 74 75 72  lback();...retur
0320: 6e 3b 0a 7d 0a 0a 2f 2a 20 52 65 67 69 73 74 65  n;.}../* Registe
0330: 72 20 6c 69 73 74 65 6e 65 72 73 20 77 69 74 68  r listeners with
0340: 20 43 68 72 6f 6d 65 20 2a 2f 0a 63 68 72 6f 6d   Chrome */.chrom
0350: 65 2e 63 65 72 74 69 66 69 63 61 74 65 50 72 6f  e.certificatePro
0360: 76 69 64 65 72 2e 6f 6e 43 65 72 74 69 66 69 63  vider.onCertific
0370: 61 74 65 73 52 65 71 75 65 73 74 65 64 2e 61 64  atesRequested.ad
0380: 64 4c 69 73 74 65 6e 65 72 28 63 61 63 6b 65 79  dListener(cackey
0390: 4c 69 73 74 43 65 72 74 69 66 69 63 61 74 65 73  ListCertificates
03a0: 29 3b 0a 63 68 72 6f 6d 65 2e 63 65 72 74 69 66  );.chrome.certif
03b0: 69 63 61 74 65 50 72 6f 76 69 64 65 72 2e 6f 6e  icateProvider.on
03c0: 53 69 67 6e 44 69 67 65 73 74 52 65 71 75 65 73  SignDigestReques
03d0: 74 65 64 2e 61 64 64 4c 69 73 74 65 6e 65 72 28  ted.addListener(
03e0: 63 61 63 6b 65 79 53 69 67 6e 4d 65 73 73 61 67  cackeySignMessag
03f0: 65 29 3b 0a                                      e);.