Annotation of embedaddon/axTLS/ssl/Config.in, revision 1.1

1.1     ! misho       1: #
        !             2: # For a description of the syntax of this configuration file,
        !             3: # see scripts/config/Kconfig-language.txt
        !             4: #
        !             5: 
        !             6: menu "SSL Library"
        !             7: 
        !             8: choice
        !             9:     prompt "Mode"
        !            10:     default CONFIG_SSL_FULL_MODE
        !            11: 
        !            12: config CONFIG_SSL_SERVER_ONLY
        !            13:     bool "Server only - no verification"
        !            14:     help
        !            15:         Enable server functionality (no client functionality). 
        !            16:         This mode still supports sessions and chaining (which can be turned
        !            17:         off in configuration).
        !            18: 
        !            19:         The axssl sample runs with the minimum of features.
        !            20:                 
        !            21:         This is the most space efficient of the modes with the library 
        !            22:         about 45kB in size. Use this mode if you are doing standard SSL server
        !            23:         work.
        !            24: 
        !            25: config CONFIG_SSL_CERT_VERIFICATION
        !            26:     bool "Server only - with verification"
        !            27:     help
        !            28:         Enable server functionality with client authentication (no client
        !            29:         functionality). 
        !            30: 
        !            31:         The axssl sample runs with the "-verify" and "-CAfile" options.
        !            32: 
        !            33:         This mode produces a library about 49kB in size. Use this mode if you
        !            34:         have an SSL server which requires client authentication (which is 
        !            35:         uncommon in browser applications).
        !            36: 
        !            37: config CONFIG_SSL_ENABLE_CLIENT
        !            38:     bool "Client/Server enabled"
        !            39:     help
        !            40:         Enable client/server functionality (including peer authentication).
        !            41: 
        !            42:         The axssl sample runs with the "s_client" option enabled.
        !            43: 
        !            44:         This mode produces a library about 51kB in size. Use this mode if you
        !            45:         require axTLS to use SSL client functionality (the SSL server code
        !            46:         is always enabled).
        !            47: 
        !            48: config CONFIG_SSL_FULL_MODE
        !            49:     bool "Client/Server enabled with diagnostics"
        !            50:     help
        !            51:         Enable client/server functionality including diagnostics. Most of the
        !            52:         extra size in this mode is due to the storage of various strings that
        !            53:         are used.
        !            54: 
        !            55:         The axssl sample has 3 more options, "-debug", "-state" and "-show-rsa"
        !            56: 
        !            57:         This mode produces a library about 58kB in size. It is suggested that 
        !            58:         this mode is used only during development, or systems that have more
        !            59:         generous memory limits.
        !            60: 
        !            61:         It is the default to demonstrate the features of axTLS.
        !            62: 
        !            63: config CONFIG_SSL_SKELETON_MODE
        !            64:     bool "Skeleton mode - the smallest server mode"
        !            65:     help
        !            66:         This is an experiment to build the smallest library at the expense of
        !            67:         features and speed.
        !            68: 
        !            69:         * Server mode only.
        !            70:         * The AES cipher is disabled.
        !            71:         * No session resumption.
        !            72:         * No external keys/certificates are supported.
        !            73:         * The bigint library has most of the performance features disabled.
        !            74:         * Some other features/API calls may not work.
        !            75: 
        !            76:         This mode produces a library about 37kB in size. The main
        !            77:         disadvantage of this mode is speed - it will be much slower than the 
        !            78:         other build modes.
        !            79: 
        !            80: endchoice
        !            81: 
        !            82: choice
        !            83:     prompt "Protocol Preference"
        !            84:     depends on !CONFIG_SSL_SKELETON_MODE
        !            85:     default CONFIG_SSL_PROT_MEDIUM
        !            86: 
        !            87: config CONFIG_SSL_PROT_LOW
        !            88:     bool "Low"
        !            89:     help
        !            90:         Chooses the cipher in the order of RC4-SHA, AES128-SHA, AES256-SHA.
        !            91:       
        !            92:         This will use the fastest cipher(s) but at the expense of security.
        !            93: 
        !            94: config CONFIG_SSL_PROT_MEDIUM
        !            95:     bool "Medium"
        !            96:     help
        !            97:         Chooses the cipher in the order of AES128-SHA, AES256-SHA, RC4-SHA.
        !            98:        
        !            99:         This mode is a balance between speed and security and is the default.
        !           100: 
        !           101: config CONFIG_SSL_PROT_HIGH
        !           102:     bool "High"
        !           103:     help
        !           104:         Chooses the cipher in the order of AES256-SHA, AES128-SHA, RC4-SHA.
        !           105:         
        !           106:         This will use the strongest cipher(s) at the cost of speed.
        !           107: 
        !           108: endchoice
        !           109: 
        !           110: config CONFIG_SSL_USE_DEFAULT_KEY
        !           111:     bool "Enable default key"
        !           112:     depends on !CONFIG_SSL_SKELETON_MODE
        !           113:     default y 
        !           114:     help
        !           115:         Some applications will not require the default private key/certificate
        !           116:         that is built in. This is one way to save on a couple of kB's if an
        !           117:         external private key/certificate is used.
        !           118: 
        !           119:         The private key is in ssl/private_key.h and the certificate is in
        !           120:         ssl/cert.h.
        !           121: 
        !           122:         The advantage of a built-in private key/certificate is that no file
        !           123:         system is required for access. Both the certificate and the private
        !           124:         key will be automatically loaded on a ssl_ctx_new().
        !           125:         
        !           126:         However this private key/certificate can never be changed (without a
        !           127:         code update).
        !           128: 
        !           129:         This mode is enabled by default. Disable this mode if the 
        !           130:         built-in key/certificate is not used.
        !           131: 
        !           132: config CONFIG_SSL_PRIVATE_KEY_LOCATION
        !           133:     string "Private key file location"
        !           134:     depends on !CONFIG_SSL_USE_DEFAULT_KEY && !CONFIG_SSL_SKELETON_MODE
        !           135:     help
        !           136:         The file location of the private key which will be automatically
        !           137:         loaded on a ssl_ctx_new().
        !           138: 
        !           139: config CONFIG_SSL_PRIVATE_KEY_PASSWORD
        !           140:     string "Private key password"
        !           141:     depends on !CONFIG_SSL_USE_DEFAULT_KEY && CONFIG_SSL_HAS_PEM
        !           142:     help
        !           143:         The password required to decrypt a PEM-encoded password file.
        !           144: 
        !           145: config CONFIG_SSL_X509_CERT_LOCATION
        !           146:     string "X.509 certificate file location"
        !           147:     depends on !CONFIG_SSL_GENERATE_X509_CERT && !CONFIG_SSL_USE_DEFAULT_KEY && !CONFIG_SSL_SKELETON_MODE
        !           148:     help
        !           149:         The file location of the X.509 certificate which will be automatically
        !           150:         loaded on a ssl_ctx_new().
        !           151: 
        !           152: config CONFIG_SSL_GENERATE_X509_CERT
        !           153:     bool "Generate X.509 Certificate"
        !           154:     default n
        !           155:     help
        !           156:         An X.509 certificate can be automatically generated on a
        !           157:         ssl_ctx_new(). A private key still needs to be provided (the private
        !           158:         key in ss/private_key.h will be used unless 
        !           159:         CONFIG_SSL_PRIVATE_KEY_LOCATION is set).
        !           160: 
        !           161:         The certificate is generated on the fly, and so a minor start-up time
        !           162:         penalty is to be expected. This feature adds around 5kB to the
        !           163:         library.
        !           164: 
        !           165:         This feature is disabled by default.
        !           166: 
        !           167: config CONFIG_SSL_X509_COMMON_NAME
        !           168:     string "X.509 Common Name"
        !           169:     depends on CONFIG_SSL_GENERATE_X509_CERT
        !           170:     help
        !           171:         The common name for the X.509 certificate. This should be the fully 
        !           172:         qualified domain name (FQDN), e.g. www.foo.com.
        !           173: 
        !           174:         If this is blank, then this will be value from gethostname() and
        !           175:         getdomainname().
        !           176: 
        !           177: config CONFIG_SSL_X509_ORGANIZATION_NAME
        !           178:     string "X.509 Organization Name"
        !           179:     depends on CONFIG_SSL_GENERATE_X509_CERT
        !           180:     help
        !           181:         The organization name for the generated X.509 certificate. 
        !           182: 
        !           183:         This field is optional.
        !           184: 
        !           185: config CONFIG_SSL_X509_ORGANIZATION_UNIT_NAME
        !           186:     string "X.509 Organization Unit Name"
        !           187:     depends on CONFIG_SSL_GENERATE_X509_CERT
        !           188:     help
        !           189:         The organization unit name for the generated X.509 certificate. 
        !           190: 
        !           191:         This field is optional.
        !           192: 
        !           193: config CONFIG_SSL_ENABLE_V23_HANDSHAKE
        !           194:     bool "Enable v23 Handshake"
        !           195:     default n
        !           196:     help
        !           197:         Some browsers use the v23 handshake client hello message 
        !           198:         (an SSL2 format message which all SSL servers can understand). 
        !           199:         It may be used if SSL2 is enabled in the browser.
        !           200: 
        !           201:         Since this feature takes a kB or so, this feature may be disabled - at
        !           202:         the risk of making it incompatible with some browsers (IE6 is ok,
        !           203:         Firefox 1.5 and below use it).
        !           204: 
        !           205:         Disable if backwards compatibility is not an issue (i.e. the client is
        !           206:         always using TLS1.0)
        !           207: 
        !           208: config CONFIG_SSL_HAS_PEM
        !           209:     bool "Enable PEM"
        !           210:     default n if !CONFIG_SSL_FULL_MODE
        !           211:     default y if CONFIG_SSL_FULL_MODE
        !           212:     depends on !CONFIG_SSL_SKELETON_MODE
        !           213:     help
        !           214:         Enable the use of PEM format for certificates and private keys.
        !           215: 
        !           216:         PEM is not normally needed - PEM files can be converted into DER files
        !           217:         quite easily. However they have the convenience of allowing multiple
        !           218:         certificates/keys in the same file.
        !           219:         
        !           220:         This feature will add a couple of kB to the library. 
        !           221: 
        !           222:         Disable if PEM is not used (which will be in most cases).
        !           223: 
        !           224: config CONFIG_SSL_USE_PKCS12
        !           225:     bool "Use PKCS8/PKCS12"
        !           226:     default n if !CONFIG_SSL_FULL_MODE
        !           227:     default y if CONFIG_SSL_FULL_MODE
        !           228:     depends on !CONFIG_SSL_SKELETON_MODE
        !           229:     help
        !           230:         PKCS#12 certificates combine private keys and certificates together in
        !           231:         one file.
        !           232: 
        !           233:         PKCS#8 private keys are also suppported (as it is a subset of PKCS#12).
        !           234: 
        !           235:         The decryption of these certificates uses RC4-128 (and these
        !           236:         certificates must be encrypted using this cipher). The actual
        !           237:         algorithm is "PBE-SHA1-RC4-128".
        !           238: 
        !           239:         Disable if PKCS#12 is not used (which will be in most cases).
        !           240: 
        !           241: config CONFIG_SSL_EXPIRY_TIME
        !           242:     int "Session expiry time (in hours)"
        !           243:     depends on !CONFIG_SSL_SKELETON_MODE
        !           244:     default 24 
        !           245:     help
        !           246:         The time (in hours) before a session expires. 
        !           247:         
        !           248:         A longer time means that the expensive parts of a handshake don't 
        !           249:         need to be run when a client reconnects later.
        !           250: 
        !           251:         The default is 1 day.
        !           252: 
        !           253: config CONFIG_X509_MAX_CA_CERTS
        !           254:     int "Maximum number of certificate authorites"
        !           255:     default 150
        !           256:     depends on !CONFIG_SSL_SERVER_ONLY && !CONFIG_SSL_SKELETON_MODE
        !           257:     help
        !           258:         Determines the number of CA's allowed. 
        !           259: 
        !           260:         Increase this figure if more trusted sites are allowed. Each
        !           261:         certificate adds about 300 bytes (when added).
        !           262: 
        !           263:         The default is to allow the Debian cert bundle to be parsed.
        !           264: 
        !           265: config CONFIG_SSL_MAX_CERTS
        !           266:     int "Maximum number of chained certificates"
        !           267:     default 3
        !           268:     help
        !           269:         Determines the number of certificates used in a certificate
        !           270:         chain. The chain length must be at least 1.
        !           271: 
        !           272:         Increase this figure if more certificates are to be added to the 
        !           273:         chain. Each certificate adds about 300 bytes (when added).
        !           274: 
        !           275:         The default is to allow one certificate + 2 certificates in the chain.
        !           276: 
        !           277: config CONFIG_SSL_CTX_MUTEXING
        !           278:     bool "Enable SSL_CTX mutexing"
        !           279:     default n
        !           280:     help
        !           281:         Normally mutexing is not required - each SSL_CTX object can deal with
        !           282:         many SSL objects (as long as each SSL_CTX object is using a single
        !           283:         thread).
        !           284: 
        !           285:         If the SSL_CTX object is not thread safe e.g. the case where a 
        !           286:         new thread is created for each SSL object, then mutexing is required. 
        !           287: 
        !           288:         Select y when a mutex on the SSL_CTX object is required.
        !           289: 
        !           290: config CONFIG_USE_DEV_URANDOM
        !           291:     bool "Use /dev/urandom"
        !           292:     default y
        !           293:     depends on !CONFIG_PLATFORM_WIN32
        !           294:     help 
        !           295:         Use /dev/urandom. Otherwise a custom RNG is used.
        !           296: 
        !           297:         This will be the default on most Linux systems.
        !           298: 
        !           299: config CONFIG_WIN32_USE_CRYPTO_LIB
        !           300:     bool "Use Win32 Crypto Library"
        !           301:     depends on CONFIG_PLATFORM_WIN32
        !           302:     help 
        !           303:         Microsoft produce a Crypto API which requires the Platform SDK to be
        !           304:         installed. It's used for the RNG.
        !           305: 
        !           306:         This will be the default on most Win32 systems.
        !           307: 
        !           308: config CONFIG_OPENSSL_COMPATIBLE
        !           309:     bool "Enable openssl API compatibility"
        !           310:     default n
        !           311:     help 
        !           312:         To ease the porting of openssl applications, a subset of the openssl
        !           313:         API is wrapped around the axTLS API.
        !           314: 
        !           315:         Note: not all the API is implemented, so parts may still break. And
        !           316:         it's definitely not 100% compatible.
        !           317: 
        !           318: config CONFIG_PERFORMANCE_TESTING
        !           319:     bool "Build the bigint performance test tool"
        !           320:     default n
        !           321:     depends on CONFIG_SSL_CERT_VERIFICATION
        !           322:     help
        !           323:         Used for performance testing of bigint.
        !           324: 
        !           325:         This is a testing tool and is normally disabled.
        !           326: 
        !           327: config CONFIG_SSL_TEST
        !           328:     bool "Build the SSL testing tool"
        !           329:     default n
        !           330:     depends on CONFIG_SSL_FULL_MODE && !CONFIG_SSL_GENERATE_X509_CERT 
        !           331:     help
        !           332:         Used for sanity checking the SSL handshaking.
        !           333: 
        !           334:         This is a testing tool and is normally disabled.
        !           335: 
        !           336: endmenu

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>