aboutsummaryrefslogtreecommitdiffstats
path: root/src/pubkey/pk_ops.h
blob: 2b9ac4366eb15cb32f5a1494a409bb89317890aa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
/*
* PK Operation Types
* (C) 2010 Jack Lloyd
*
* Distributed under the terms of the Botan license
*/

#ifndef BOTAN_PK_OPERATIONS_H__
#define BOTAN_PK_OPERATIONS_H__

#include <botan/secmem.h>

namespace Botan {

namespace PK_Ops {

/*
* A generic Key Agreement Operation (eg DH or ECDH)
*/
class BOTAN_DLL KA_Operation
   {
   public:
      /*
      * Perform a key agreement operation
      * @param w the other key value
      * @param w_len the length of w in bytes
      * @returns the agreed key
      */
      virtual SecureVector<byte> agree(const byte w[], u32bit w_len) const = 0;

      virtual ~KA_Operation() {}
   };

}

}

#endif