00001 // Copyright (C) 2005 Alexander Ushakov 00002 // Contents: Definition of class KLProtocolInstance 00003 // 00004 // Principal Authors: Alexander Ushakov 00005 // 00006 // Revision History: 00007 // 00008 00009 #ifndef _KLKeyGeneration_h_ 00010 #define _KLKeyGeneration_h_ 00011 00012 #include "Word.h" 00013 00014 #include <vector> 00015 using namespace std; 00016 00017 00018 //---------------------------------------------------------------------------// 00019 //--------------------------- KLProtocolInstance ----------------------------// 00020 //---------------------------------------------------------------------------// 00021 00022 00023 class KLProtocolInstance 00024 { 00025 00027 // // 00028 // Constructors: // 00029 // // 00031 00032 public: 00033 00035 KLProtocolInstance( int braid_rank , Word base_word , Word keyA , Word KeyB ); 00036 00037 00039 // // 00040 // Accessors: // 00041 // // 00043 00044 public: 00045 00047 00052 static KLProtocolInstance random( int braid_rank , int baseLenth , int keyLength ); 00053 00055 int getBraidRank ( ) const { return theRank ; } 00057 Word getPrivateKeyA( ) const { return thePrivateKeyA; } 00059 Word getPrivateKeyB( ) const { return thePrivateKeyB; } 00061 Word getPublicKeyA ( ) const { return thePublicKeyA ; } 00063 Word getPublicKeyB ( ) const { return thePublicKeyB ; } 00064 00066 // // 00067 // Data members: // 00068 // // 00070 00071 private: 00072 00074 int theRank; 00075 00077 Word theBase; 00078 00080 Word thePrivateKeyA; 00081 00083 Word thePublicKeyA; 00084 00086 Word thePrivateKeyB; 00087 00089 Word thePublicKeyB; 00090 00091 }; 00092 00093 00094 #endif