#ifndef PA_SIGNER_SRC_PKCS7_H_
#define PA_SIGNER_SRC_PKCS7_H_

#include <stdint.h>
#include <string>
#include <vector>
#include <openssl/evp.h>
#include <openssl/pkcs7.h>
#include <openssl/rsa.h>

class Pkcs7 {
 public:
  Pkcs7(const std::string& filename);
  Pkcs7(const std::vector<uint8_t>& data);
  ~Pkcs7();

  EVP_PKEY* GetKey();
  const RSA* GetRsa() const {return rsa_;}

 private:
  EVP_PKEY* key_;
  RSA* rsa_;
  PKCS7* p7_;

  void Init(void);
};

#endif /* PA_SIGNER_SRC_PKCS7_H_ */
