libDwmCredence-0.1.32
DwmCredenceChallengeResponse.hh
Go to the documentation of this file.
1//===========================================================================
2// @(#) $DwmPath$
3//===========================================================================
4// Copyright (c) Daniel W. McRobb 2022
5// All rights reserved.
6//
7// Redistribution and use in source and binary forms, with or without
8// modification, are permitted provided that the following conditions
9// are met:
10//
11// 1. Redistributions of source code must retain the above copyright
12// notice, this list of conditions and the following disclaimer.
13// 2. Redistributions in binary form must reproduce the above copyright
14// notice, this list of conditions and the following disclaimer in the
15// documentation and/or other materials provided with the distribution.
16// 3. The names of the authors and copyright holders may not be used to
17// endorse or promote products derived from this software without
18// specific prior written permission.
19//
20// IN NO EVENT SHALL DANIEL W. MCROBB BE LIABLE TO ANY PARTY FOR
21// DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES,
22// INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE,
23// EVEN IF DANIEL W. MCROBB HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
24// DAMAGE.
25//
26// THE SOFTWARE PROVIDED HEREIN IS ON AN "AS IS" BASIS, AND
27// DANIEL W. MCROBB HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT,
28// UPDATES, ENHANCEMENTS, OR MODIFICATIONS. DANIEL W. MCROBB MAKES NO
29// REPRESENTATIONS AND EXTENDS NO WARRANTIES OF ANY KIND, EITHER
30// IMPLIED OR EXPRESS, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
31// WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE,
32// OR THAT THE USE OF THIS SOFTWARE WILL NOT INFRINGE ANY PATENT,
33// TRADEMARK OR OTHER RIGHTS.
34//===========================================================================
35
36//---------------------------------------------------------------------------
40//---------------------------------------------------------------------------
41
42#ifndef _DWMCREDENCECHALLENGERESPONSE_HH_
43#define _DWMCREDENCECHALLENGERESPONSE_HH_
44
45#include <string>
46
48
49namespace Dwm {
50
51 namespace Credence {
52
53 //------------------------------------------------------------------------
56 //------------------------------------------------------------------------
58 {
59 public:
60 //----------------------------------------------------------------------
62 //----------------------------------------------------------------------
63 ChallengeResponse() = default;
64
65 //----------------------------------------------------------------------
67 //----------------------------------------------------------------------
69
70 //----------------------------------------------------------------------
73 //----------------------------------------------------------------------
74 bool Create(const std::string & signingKey,
75 const Challenge & challenge);
76
77 //----------------------------------------------------------------------
81 //----------------------------------------------------------------------
82 std::istream & Read(std::istream & is);
83
84 //----------------------------------------------------------------------
88 //----------------------------------------------------------------------
89 std::ostream & Write(std::ostream & os) const;
90
91 //----------------------------------------------------------------------
96 //----------------------------------------------------------------------
97 bool Verify(const std::string & publicKey,
98 const std::string & challengeString) const;
99
100 private:
101 std::string _response;
102 };
103
104 } // namespace Credence
105
106} // namespace Dwm
107
108#endif // _DWMCREDENCECHALLENGERESPONSE_HH_
Dwm::Credence::Challenge class declaration.
Encapsulates a challenge response.
Definition DwmCredenceChallengeResponse.hh:58
ChallengeResponse(const ChallengeResponse &)=default
Default copy constructor.
bool Verify(const std::string &publicKey, const std::string &challengeString) const
Using the given publicKey of the source of the response, verifies that the response was signed by the...
bool Create(const std::string &signingKey, const Challenge &challenge)
Given a challenge, creates the response using the given signingKey.
std::ostream & Write(std::ostream &os) const
Writes the challenge response to the given ostream os.
ChallengeResponse()=default
Default constructor.
std::istream & Read(std::istream &is)
Reads the challenge response from the given istream is.
Encapsulate a challenge sent to a client or server to verify their idendity during authentication.
Definition DwmCredenceChallenge.hh:57