Home | History | Annotate | Download | only in unittests
      1 /*############################################################################
      2   # Copyright 2016-2017 Intel Corporation
      3   #
      4   # Licensed under the Apache License, Version 2.0 (the "License");
      5   # you may not use this file except in compliance with the License.
      6   # You may obtain a copy of the License at
      7   #
      8   #     http://www.apache.org/licenses/LICENSE-2.0
      9   #
     10   # Unless required by applicable law or agreed to in writing, software
     11   # distributed under the License is distributed on an "AS IS" BASIS,
     12   # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13   # See the License for the specific language governing permissions and
     14   # limitations under the License.
     15   ############################################################################*/
     16 
     17 /*!
     18  * \file
     19  * \brief Test fixture class for Epid11Verifier.
     20  */
     21 #ifndef EPID_VERIFIER_1_1_UNITTESTS_VERIFIER_TESTHELPER_H_
     22 #define EPID_VERIFIER_1_1_UNITTESTS_VERIFIER_TESTHELPER_H_
     23 
     24 #include <vector>
     25 
     26 #include "epid/common-testhelper/epid_gtest-testhelper.h"
     27 #include "gtest/gtest.h"
     28 
     29 extern "C" {
     30 #include "epid/verifier/1.1/api.h"
     31 }
     32 
     33 /// Test fixture class for Epid11Verifier
     34 class Epid11VerifierTest : public ::testing::Test {
     35  public:
     36   /// Serialized identity element in G3
     37   static const Epid11G3ElemStr kG3IdentityStr;
     38   /// test public key
     39   static const Epid11GroupPubKey kPubKeyStr;
     40   /// test public key for tests of msg containing all bytes
     41   static const Epid11GroupPubKey kPubKeyStrForMsg0_255;
     42   /// the message "test message"
     43   static const std::vector<uint8_t> kMsg0;
     44   /// the basename "basename1"
     45   static const std::vector<uint8_t> kBsn0;
     46   /// a data with bytes [0,255]
     47   static const std::vector<uint8_t> kData_0_255;
     48   /// Signature of kData_0_255 with kBsn0 by Grp01 Member0 using Sha256
     49   static const std::vector<uint8_t> kSigGrp01Member0Sha256kBsn0Data_0_255;
     50   /// the privrl of group X
     51   static const std::vector<uint8_t> kGrpXPrivRl;
     52   /// currpted privrl of group X
     53   static const std::vector<uint8_t> kGrpXCorruptedPrivRl;
     54   /// a single entry privrl for group X
     55   static const std::vector<uint8_t> kGrpXPrivRlSingleEntry;
     56   /// verifier pre-computation data associated with pub_key_str
     57   static const Epid11VerifierPrecomp kVerifierPrecompStr;
     58   /// Intel(R) EPID 1.1 parameters
     59   static const Epid11Params kParamsStr;
     60   /// signature of msg0 by member0 of groupX with Sha256 bsn0
     61   static const std::vector<uint8_t> kSigGrpXMember0Sha256Bsn0Msg0;
     62   /// signature of msg0 by member0 of groupX with Sha256 bsn0 with one NrProof
     63   static const std::vector<uint8_t> kSigGrpXMember0Sha256Bsn0Msg0SingleEntry;
     64   /// signature of msg0 by member0 of groupX with Sha256 bsn0 with three NrProof
     65   static const std::vector<uint8_t> kSigGrpXMember0Sha256Bsn0Msg0ThreeEntry;
     66   /// signature of msg1 by member0 of groupX with Sha256 bsn0
     67   static const std::vector<uint8_t> kSigGrpXMember0Sha256Bsn0Msg1;
     68   /// signature of msg0 by member0 of groupX with Sha256 bsn1
     69   static const std::vector<uint8_t> kSigGrpXMember0Sha256Bsn1Msg0;
     70   /// signature of msg0 by member0 of groupX with Sha256 rnd base
     71   static const std::vector<uint8_t> kSigGrpXMember0Sha256RandbaseMsg0;
     72   /// signature of msg0 by member0 of groupX with Sha256 rnd base with n2==1
     73   static const std::vector<uint8_t> kSigGrpXMember0Sha256RandbaseMsg0N2One;
     74   /// signature of msg1 by member0 of groupX with Sha256 rnd base
     75   static const std::vector<uint8_t> kSigGrpXMember0Sha256RandbaseMsg1;
     76   /// signature of msg0 by member1 of groupX with Sha256 bsn0
     77   static const std::vector<uint8_t> kSigGrpXMember1Sha256Bsn0Msg0;
     78   /// signature of msg0 by priv revoked member 0 of groupX with Sha256 bsn0
     79   static const std::vector<uint8_t> kSigGrpXRevokedPrivKey000Sha256Bsn0Msg0;
     80   /// signature of msg0 by priv revoked member 1 of groupX with Sha256 bsn0
     81   static const std::vector<uint8_t> kSigGrpXRevokedPrivKey001Sha256Bsn0Msg0;
     82   /// signature of msg0 by priv revoked member 2 of groupX with Sha256 bsn0
     83   static const std::vector<uint8_t> kSigGrpXRevokedPrivKey002Sha256Bsn0Msg0;
     84 
     85   /// group based rl test data (empty rl)
     86   static const std::vector<uint8_t> kGroupRlEmptyBuf;
     87   /// group based rl test data (v=3, n=3, 3 revoked gid)
     88   static const std::vector<uint8_t> kGroupRl3GidBuf;
     89 
     90   /// a group revocation list with single group revoked
     91   static const std::vector<uint8_t> kGrpRlRevokedGrpXSingleEntry;
     92   /// a group revocation list with multiple entries
     93   static const std::vector<uint8_t> kGrpRlRevokedGrpXFirstEntry;
     94   /// a group revocation list with multiple entries
     95   static const std::vector<uint8_t> kGrpRlRevokedGrpXMiddleEntry;
     96   /// a group revocation list with multiple entries
     97   static const std::vector<uint8_t> kGrpRlRevokedGrpXLastEntry;
     98 
     99   /// signature based revocation list
    100   static const std::vector<uint8_t> kSigRl;
    101   /// signature based revocation list for tests of msg containing all bytes
    102   static const std::vector<uint8_t> kSigRlForMsg0_255;
    103   /// signature based revocation list (empty rl)
    104   static const std::vector<uint8_t> kEmptySigRl;
    105 
    106   /// setup called before each TEST_F starts
    107   virtual void SetUp() {}
    108   /// teardown called after each TEST_F finishes
    109   virtual void TearDown() {}
    110 
    111   /// value "1" represented as an octstr constant
    112   /*!
    113   this value is used frequently to set 32 bit fields. describing as a constant
    114   here
    115   to reduce replication in code.
    116   */
    117   static const OctStr32 kOctStr32_1;
    118   /// the sigrl of group X
    119   static const std::vector<uint8_t> kGrpXSigRlMember0Bsn0Msg0SingleEntry;
    120   /// the sigrl of group X
    121   static const std::vector<uint8_t> kGrpXSigRlMember0Bsn0Msg0FirstEntry;
    122   /// the sigrl of group X
    123   static const std::vector<uint8_t> kGrpXSigRlMember0Bsn0Msg0MiddleEntry;
    124   /// the sigrl of group X
    125   static const std::vector<uint8_t> kGrpXSigRlMember0Bsn0Msg0LastEntry;
    126 };
    127 
    128 #endif  // EPID_VERIFIER_1_1_UNITTESTS_VERIFIER_TESTHELPER_H_
    129