1 2 /* Web Polygraph http://www.web-polygraph.org/ 3 * Copyright 2003-2011 The Measurement Factory 4 * Licensed under the Apache License, Version 2.0 */ 5 6 #ifndef POLYGRAPH__PGL_SSLWRAPSYM_H 7 #define POLYGRAPH__PGL_SSLWRAPSYM_H 8 9 #include "xstd/Array.h" 10 #include "xstd/Size.h" 11 #include "pgl/PglRecSym.h" 12 13 14 // a set of addresses that talk SSL and parameters for SSL protocol 15 class SslWrapSym: public RecSym { 16 public: 17 static String TheType; 18 19 public: 20 SslWrapSym(); 21 SslWrapSym(const String &aType, PglRec *aRec); 22 23 virtual bool isA(const String &type) const; 24 25 String rootCertificate() const; 26 String sharingGroup() const; 27 bool protocols(Array<String*> &protos, Array<double> &probs) const; 28 RndDistr *protocols(const TokenIdentifier &protocolNames) const; 29 bool rsaKeySizes(Array<Size>&, RndDistr *&) const; 30 bool generateCertificates(bool &set) const; 31 bool certificates(Array<String*> &) const; 32 bool ciphers(Array<String*> &, RndDistr *&) const; 33 bool sessionResumpt(double &prob) const; 34 bool sessionCacheSize(int &count) const; 35 String sslConfigFile() const; 36 bool verifyPeerCertificate(bool &set) const; 37 bool compression(double &prob) const; 38 bool sni(double &prob) const; 39 String ecdheCurve() const; 40 41 protected: 42 virtual SynSym *dupe(const String &dType) const; 43 }; 44 45 #endif 46