|
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- |
|
2 * |
|
3 * This Source Code Form is subject to the terms of the Mozilla Public |
|
4 * License, v. 2.0. If a copy of the MPL was not distributed with this |
|
5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
|
6 |
|
7 #ifndef _INC_NSVERIFICATIONJOB_H |
|
8 #define _INC_NSVERIFICATIONJOB_H |
|
9 |
|
10 #include "nspr.h" |
|
11 |
|
12 #include "nsIX509Cert.h" |
|
13 #include "nsIX509Cert3.h" |
|
14 #include "nsICMSMessage.h" |
|
15 #include "nsICMSMessage2.h" |
|
16 #include "nsProxyRelease.h" |
|
17 |
|
18 class nsBaseVerificationJob |
|
19 { |
|
20 public: |
|
21 virtual ~nsBaseVerificationJob() {} |
|
22 virtual void Run() = 0; |
|
23 }; |
|
24 |
|
25 class nsCertVerificationJob : public nsBaseVerificationJob |
|
26 { |
|
27 public: |
|
28 nsCOMPtr<nsIX509Cert> mCert; |
|
29 nsMainThreadPtrHandle<nsICertVerificationListener> mListener; |
|
30 |
|
31 void Run(); |
|
32 }; |
|
33 |
|
34 class nsCertVerificationResult : public nsICertVerificationResult |
|
35 { |
|
36 public: |
|
37 nsCertVerificationResult(); |
|
38 virtual ~nsCertVerificationResult(); |
|
39 |
|
40 NS_DECL_THREADSAFE_ISUPPORTS |
|
41 NS_DECL_NSICERTVERIFICATIONRESULT |
|
42 |
|
43 private: |
|
44 nsresult mRV; |
|
45 uint32_t mVerified; |
|
46 uint32_t mCount; |
|
47 char16_t **mUsages; |
|
48 |
|
49 friend class nsCertVerificationJob; |
|
50 }; |
|
51 |
|
52 class nsSMimeVerificationJob : public nsBaseVerificationJob |
|
53 { |
|
54 public: |
|
55 nsSMimeVerificationJob() { digest_data = nullptr; digest_len = 0; } |
|
56 ~nsSMimeVerificationJob() { delete [] digest_data; } |
|
57 |
|
58 nsCOMPtr<nsICMSMessage> mMessage; |
|
59 nsCOMPtr<nsISMimeVerificationListener> mListener; |
|
60 |
|
61 unsigned char *digest_data; |
|
62 uint32_t digest_len; |
|
63 |
|
64 void Run(); |
|
65 }; |
|
66 |
|
67 |
|
68 |
|
69 #endif |