Somebody tell me: how i can correctly read variables (type=char*) into ssl module file=>ssl_engine_pphrase.c scanf("%s",str) and etc. not functionall :( (segmentation fault or break apache). What use? Very need. Thanks. below text where insert code.
//................................. /* * Read in the private key: This is the non-trivial part, because the * key is typically encrypted, so a pass phrase dialog has to be used * to request it from the user (or it has to be alternatively gathered * from a dialog program). The important point here is that ISPs * usually have hundrets of virtual servers configured and a lot of * them use SSL, so really we have to minimize the pass phrase * dialogs. * * The idea is this: When N virtual hosts are configured and all of * them use encrypted private keys with different pass phrases, we * have no chance and have to pop up N pass phrase dialogs. But * usually the admin is clever enough and uses the same pass phrase * for more private key files (typically he even uses one single pass * phrase for all). When this is the case we can minimize the dialogs * by trying to re-use already known/entered pass phrases. */ //!!! //!!! place when need read variables !!! //!!! if (sc->server->pks->key_files[j] != NULL) apr_cpystrn(szPath, sc->server->pks->key_files[j++], sizeof(szPath)); /* * Try to read the private key file with the help of * the callback function which serves the pass * phrases to OpenSSL */ myCtxVarSet(mc, 1, pServ); myCtxVarSet(mc, 2, p); myCtxVarSet(mc, 3, aPassPhrase); myCtxVarSet(mc, 4, &nPassPhraseCur); myCtxVarSet(mc, 5, &cpPassPhraseCur); myCtxVarSet(mc, 6, cpVHostID); myCtxVarSet(mc, 7, an); myCtxVarSet(mc, 8, &nPassPhraseDialog); myCtxVarSet(mc, 9, &nPassPhraseDialogCur); myCtxVarSet(mc, 10, &bPassPhraseDialogOnce); nPassPhraseCur = 0; nPassPhraseRetry = 0; nPassPhraseDialogCur = 0; bPassPhraseDialogOnce = TRUE; pPrivateKey = NULL; for (;;) { /* * Try to read the private key file with the help of * the callback function which serves the pass * phrases to OpenSSL */ if ((rv = exists_and_readable(szPath, p, &pkey_mtime)) != APR_SUCCESS ) { ap_log_error(APLOG_MARK, APLOG_ERR, rv, s, "Init: Can't open server private key file " "%s",szPath); ssl_die(); } //.................................