title: Method to verify a signed archive's X.509 CoT
body: <p>I am trying to understand the key high level details behind verifying trust when downloading an archive.</p>
  
  <p>This is my understanding of how it could be done:</p>
  
  <p><strong>On the Software Developer side:</strong></p>
  
  <ol>
  <li><p>Obtain a certificate from a public CA like verisign </p></li>
  <li><p>Generate a hash of your archive and then encrypt this string using the private key from your certificate, this is the "signature"</p></li>
  <li><p>Host the archive for download, along with a separate file which contains the public key from your certificate + the signature generated in step 2.</p></li>
  </ol>
  
  <p><strong>On the (user) client side:</strong></p>
  
  <ol start="4">
  <li><p>Download and unpack the archive, download the signature + public key file</p></li>
  <li><p>Decrypt the downloaded signature using the downloaded public key, save this value</p></li>
  <li><p>Iterate through the public root certificates embedded within your operating system. For each root certificate, decrypt the signature value and compare the result to the result in step 5.</p></li>
  <li><p>Once a match is found in 6, you have verified that the author's private key descends from the chain of trust of the CA which you found matched in step 6.</p>
  
  <ul>
  <li>This all assumes that the software developer used a CA for which we have an embedded root certificate in our clients OS.</li>
  </ul></li>
  </ol>
  
  <p><strong>Questions:</strong></p>
  
  <ol>
  <li>Is the above method sound, or am I overlooking key details?</li>
  <li>Given a blank slate client that you control, if I wanted to combine the public key + signature + archive into a single file that I could make the client understand and parse, are there any widely supported formats to leverage for organizing this data?</li>
  </ol>