My Project
fs_signature.h
Go to the documentation of this file.
1 
15 #ifndef FS_SIGNATURE_H_
16 #define FS_SIGNATURE_H_
17 
18 #include "common/fs_common.h"
19 #include "common/fs_image.h"
21 
27 namespace foxit {
31 namespace pdf {
84 class Signature FS_FINAL : public interform::Field {
85  public:
102  typedef enum _States {
104  e_StateUnknown = 0x00000000,
106  e_StateNoSignData = 0x00000200,
108  e_StateUnsigned = 0x00000001,
110  e_StateSigned = 0x00000002,
112  e_StateVerifyValid = 0x00000004,
114  e_StateVerifyInvalid = 0x00000008,
122  e_StateVerifyChange = 0x00000080,
126  e_StateVerifyNoChange = 0x00000400,
155  } States;
156 
162  typedef enum _APFlags {
166  e_APFlagLabel = 0x0002,
168  e_APFlagReason = 0x0004,
172  e_APFlagDN = 0x0010,
176  e_APFlagSigner = 0x0040,
178  e_APFlagBitmap = 0x0080,
180  e_APFlagText = 0x0100
181  } APFlags;
182 
188  typedef enum _KeyName {
201  } KeyName;
202 
208  typedef enum _DigestAlgorithm {
217  } DigestAlgorithm;
218 
219 
225  explicit Signature(const interform::Field& field);
226 
234  Signature(const foxit::pdf::PDFDoc& document, foxit::pdf::objects::PDFDictionary* sig_field_dict);
235  // User is strongly recommended NOT to use this method; otherwise unknown situation may occur.
236  explicit Signature(FS_HANDLE handle = NULL);
237 
240 
248  bool IsEmpty() const;
249 
255  bool IsSigned();
256 
306  common::Progressive StartSign(const wchar_t* cert_path, const WString& cert_password,
307  DigestAlgorithm digest_algorithm, const char* save_path,
308  const void* client_data = NULL, common::PauseCallback* pause = NULL);
309 
359  common::Progressive StartSign(const wchar_t* cert_path, const WString& cert_password,
360  DigestAlgorithm digest_algorithm, const wchar_t* save_path,
361  const void* client_data = NULL, common::PauseCallback* pause = NULL);
362 
390  common::Progressive StartVerify(const void* client_data = NULL, common::PauseCallback* pause = NULL);
391 
411  String GetCertificateInfo(const char* key);
412 
427  bool GetByteRangeArray(uint32 out_byte_range_array[4]);
428 
455  uint32 GetState();
456 
465  bool ClearSignedData();
466 
473 
485 
501  void SetAppearanceFlags(uint32 appearance_flags);
502 
521  void SetAppearanceContent(const String& appearance_content);
522 
530 
541  void SetSignTime(const DateTime& sign_time);
542 
551  String GetFilter();
570  void SetFilter(const char* filter);
571 
599  void SetSubFilter(const char* sub_filter);
600 
613 
628  void SetKeyValue(KeyName key, const wchar_t* value);
629 
637 
649  void SetBitmap(const common::Bitmap& bitmap);
650 
666  void SetImage(const common::Image& image, int frame_index);
667 
683  void SetImage(const char* file_path, int frame_index);
684 
700  void SetImage(const wchar_t* file_path, int frame_index);
701 
710 
728  void SetDefaultContentsLength(uint32 default_length);
729 
740  int32 GetCertCount() const;
741 
756  WString GetCert(int32 index) const;
757 
770  void SetCertChain(const WStringArray& cert_chain);
771 };
772 
783  public:
789  virtual void Release() = 0;
790 
809  virtual bool StartCalcDigest(const common::file::ReaderCallback* file, const uint32* byte_range_array,
810  uint32 size_of_array, const Signature& signature, const void* client_data) = 0;
811 
830  virtual common::Progressive::State ContinueCalcDigest(const void* client_data,
831  const common::PauseCallback* pause) = 0;
832 
844  virtual String GetDigest(const void* client_data) = 0;
845 
867  virtual String Sign(const void* digest, uint32 digest_length, const wchar_t* cert_path,
868  const WString& cert_password, Signature::DigestAlgorithm digest_algorithm,
869  void* client_data) = 0;
870 
887  virtual uint32 VerifySigState(const void* digest, uint32 digest_length,
888  const void* signed_data, uint32 signed_data_len,
889  void* client_data) = 0;
890 
898  virtual bool IsNeedPadData() = 0;
899 
900  protected:
901  ~SignatureCallback() {}
902 };
903 } // namespace pdf
904 } // namespace foxit
905 #endif // FS_SIGNATURE_H_
906 
APFlags
Enumeration for signature appearance flags.
Definition: fs_signature.h:162
common::Progressive StartVerify(const void *client_data=0, common::PauseCallback *pause=0)
Start verifying current signature if current signature is signed.
void * FS_HANDLE
Handle type.
Definition: fs_basictypes.h:216
Signature digest algorithm: sha256 algorithm.
Definition: fs_signature.h:212
Verification state of the timestamp is valid.
Definition: fs_signature.h:144
uint32 GetState()
Get current state.
virtual uint32 VerifySigState(const void *digest, uint32 digest_length, const void *signed_data, uint32 signed_data_len, void *client_data)=0
A callback function used to do verifying and return the verify state.
Definition: fs_basictypes.h:375
virtual String Sign(const void *digest, uint32 digest_length, const wchar_t *cert_path, const WString &cert_password, Signature::DigestAlgorithm digest_algorithm, void *client_data)=0
A callback function used to do signing and return the signed data.
If set, show label on signature appearance.
Definition: fs_signature.h:166
bool GetByteRangeArray(uint32 out_byte_range_array[4])
Get the byte ranges data, including 4 elements.
void SetFilter(const char *filter)
Set filter.
Definition: fs_common.h:385
Unknown signature.
Definition: fs_signature.h:104
Signature key name: contact information.
Definition: fs_signature.h:196
Verification state of the timestamp issuer is valid.
Definition: fs_signature.h:152
DateTime GetSignTime()
Get time of signing.
Header file for PDF form related definitions and classes.
Signature key name: location.
Definition: fs_signature.h:192
Header file for common definitions and classes.
~Signature()
Destructor.
Definition: fs_signature.h:239
void SetCertChain(const WStringArray &cert_chain)
Set a certificate chain.
Signature key name: distinguish name.
Definition: fs_signature.h:198
Certificate for verifying issuer is expired.
Definition: fs_signature.h:134
Verification state of the issuer is unknown.
Definition: fs_signature.h:130
If set, show signer on signature appearance.
Definition: fs_signature.h:176
file reading interface.
Definition: fx_stream.h:555
If set, show distinguish name on signature appearance.
Definition: fs_signature.h:172
uint32 GetAppearanceFlags()
Get signature appearance flags.
virtual bool StartCalcDigest(const common::file::ReaderCallback *file, const uint32 *byte_range_array, uint32 size_of_array, const Signature &signature, const void *client_data)=0
A callback function used to start a custom digest calculation, mainly to initialize the calculation p...
Certificate for verifying issuer is revoked.
Definition: fs_signature.h:132
Signature digest algorithm: sha1 algorithm.
Definition: fs_signature.h:210
Verification state of the timestamp issuer is unknown.
Definition: fs_signature.h:150
The verified issue is current issuer.
Definition: fs_signature.h:138
States
Enumeration for signature states.
Definition: fs_signature.h:102
String GetSubFilter()
Get sub filter.
The document has not been changed within the scope of the signature.
Definition: fs_signature.h:126
If set, show location on signature appearance.
Definition: fs_signature.h:174
void SetImage(const common::Image &image, int frame_index)
Set an image for the signature appearance, with a specified frame index.
String GetCertificateInfo(const char *key)
Get certificate information.
Verification state of a signature is invalid.
Definition: fs_signature.h:114
PDFDoc GetDocument()
Get the PDF document, which current signature belongs to.
virtual void Release()=0
A callback function used to release current callback object itself.
virtual common::Progressive::State ContinueCalcDigest(const void *client_data, const common::PauseCallback *pause)=0
A callback function used to continue the custom digest calculation process.
void SetKeyValue(KeyName key, const wchar_t *value)
Set the string value for specified key name.
bool IsSigned()
Check whether current signature is signed or not.
Definition: fs_pdfform.h:145
Verification state of a signature is valid.
Definition: fs_signature.h:112
BYTE STRING CLASS.
Definition: fx_string.h:317
No timestamp or not check timestamp.
Definition: fs_signature.h:140
Signature key name: text content.
Definition: fs_signature.h:200
void SetSubFilter(const char *sub_filter)
Set sub filter.
Definition: fs_signature.h:84
Signature key name: reason.
Definition: fs_signature.h:194
Unsupported signature.
Definition: fs_signature.h:118
bool IsEmpty() const
Check whether current object is empty or not.
Not check the issuer.
Definition: fs_signature.h:136
If set, show bitmap on signature appearance.
Definition: fs_signature.h:178
If set, show Foxit flag on signature appearance.
Definition: fs_signature.h:164
Verification state of the timestamp is expired.
Definition: fs_signature.h:148
Verification state of the timestamp time is valid, since the times is before the expiration date.
Definition: fs_signature.h:154
WString GetCert(int32 index) const
Get a certificate from current signature's certificate chain by index.
bool ClearSignedData()
Clear the data and appearance if current signature is singed and verified valid.
Signature digest algorithm: sha512 algorithm.
Definition: fs_signature.h:216
Verification state of the issuer is valid.
Definition: fs_signature.h:128
Foxit namespace.
Definition: fs_connectedpdf.h:26
The document has been changed within the scope of the signature.
Definition: fs_signature.h:122
If set, show reason on signature appearance.
Definition: fs_signature.h:168
Signature data is destroyed (that means the signature data cannot be parsed properly).
Definition: fs_signature.h:116
common::Bitmap GetBitmap()
Get a bitmap which is used for the signature appearance.
Signature digest algorithm: sha384 algorithm.
Definition: fs_signature.h:214
Definition: fx_basic.h:3690
Header file for image and bitmap related definitions and classes.
Signature does not have any data for signing.
Definition: fs_signature.h:106
Definition: fs_pdfobject.h:763
WString GetKeyValue(KeyName key)
Get the string value for specified key name.
common::Progressive StartSign(const wchar_t *cert_path, const WString &cert_password, DigestAlgorithm digest_algorithm, const char *save_path, const void *client_data=0, common::PauseCallback *pause=0)
Start signing current signature if current signature is unsigned.
virtual bool IsNeedPadData()=0
Check whether to return all contents with padding zero or not, when callback function SignatureCallba...
Signature key name: signer.
Definition: fs_signature.h:190
#define NULL
The null-pointer value.
Definition: fx_system.h:773
Definition: fs_pdfdoc.h:338
void SetDefaultContentsLength(uint32 default_length)
Set the default length of signature contents which represents signature value (known as signed data).
State
Enumeration for progress state.
Definition: fs_common.h:392
FX_INT32 int32
32-bit signed integer.
Definition: fs_basictypes.h:196
Definition: fs_image.h:426
DigestAlgorithm
Enumeration for signature digest algorithm.
Definition: fs_signature.h:208
Definition: fs_basictypes.h:226
String GetFilter()
Get filter.
Signature(const interform::Field &field)
Constructor, with parent class object.
The signature is a timestamp signature.
Definition: fs_signature.h:142
Non expected byte range.
Definition: fs_signature.h:120
If set, show text content on signature appearance.
Definition: fs_signature.h:180
Signed signature.
Definition: fs_signature.h:110
If set, show signing time on signature appearance.
Definition: fs_signature.h:170
void SetAppearanceContent(const String &appearance_content)
Set customized appearance content (as low level drawing operation commands) for signed signature appe...
Definition: fs_signature.h:782
WIDE STRING CLASS.
Definition: fx_string.h:1470
int32 GetCertCount() const
Get the count of certificates in current signature's certificate chain.
KeyName
Enumeration for signature key name.
Definition: fs_signature.h:188
Definition: fs_image.h:36
virtual String GetDigest(const void *client_data)=0
A callback function used to get the digest after the calculation process is finished.
Verification state of the timestamp is invalid.
Definition: fs_signature.h:146
void SetAppearanceFlags(uint32 appearance_flags)
Set signature appearance flags.
void SetSignTime(const DateTime &sign_time)
Set time of signing.
FX_UINT32 uint32
32-bit unsigned integer.
Definition: fs_basictypes.h:198
Unsigned signature.
Definition: fs_signature.h:108
Signature cannot be trusted (containing aggression).
Definition: fs_signature.h:124
objects::PDFDictionary * GetSignatureDict() const
Get signature dictionary.
void SetBitmap(const common::Bitmap &bitmap)
Set a bitmap for the signature appearance.

Foxit Software Corporation Logo
@2019 Foxit Software Incorporated. All rights reserved.