/* -*- Mode: IDL; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

/* An interface for verifying signatures */
#include "nsIPrincipal.idl"

[uuid(dea87f65-e91e-4119-aa13-aaa2be80cac2)]
interface nsISignatureVerifier : nsISupports
{
   /* Sig Verification Error Codes */
  const long VERIFY_OK = 0;
  const long VERIFY_ERROR_UNKNOWN_CA  = -8172; /* -8172 is the error code returned by PSM */
  
  nsIPrincipal verifySignature(in string aSignature,
                               in unsigned long aSignatureLen,
                               in string plaintext,
                               in unsigned long plaintextLen,
                               out long errorCode);
};


%{C++
#define SIGNATURE_VERIFIER_CONTRACTID "@mozilla.org/psm;1"
%}
