@@ -697,47 +697,48 @@
697 697 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** of disk files that hold the certificate and private-key for the
698 698 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** server. If zCertFile is not NULL but zKeyFile is NULL, then
699 699 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** zCertFile is assumed to be a concatenation of the certificate and
700 700 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the private-key in the PEM format.
701 701 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
702 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** If zCertFile is NULL, then "ssl-cert" setting is consulted
703 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** to get the certificate and private-key (concatenated together, in
704 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** the PEM format). If there is no ssl-cert setting, then
705 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** a built-in self-signed cert is used.
702 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** If zCertFile is "unsafe-builtin", then a built-in self-signed cert
703 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** is used. This built-in cert is insecure and should only be used for
704 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** testing and debugging.
706 705 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
707 706 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void ssl_init_server(const char *zCertFile, const char *zKeyFile){
708 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( sslIsInit==0 ){
709 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const char *zTlsCert;
707 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( sslIsInit==0 && zCertFile ){
710 708 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SSL_library_init();
711 709 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SSL_load_error_strings();
712 710 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
OpenSSL_add_all_algorithms();
713 711 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sslCtx = SSL_CTX_new(SSLv23_server_method());
714 712 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( sslCtx==0 ){
715 713 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
ERR_print_errors_fp(stderr);
716 714 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_fatal("Error initializing the SSL server");
717 715 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
718 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( zCertFile && zCertFile[0] ){
716 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( fossil_strcmp(zCertFile,"unsafe-builtin")==0 ){
717 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( sslctx_use_cert_from_mem(sslCtx, sslSelfCert, -1)
718 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || sslctx_use_pkey_from_mem(sslCtx, sslSelfPKey, -1)
719 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
720 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fossil_fatal("Error loading self-signed CERT and KEY");
721 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
722 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
719 723 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( SSL_CTX_use_certificate_chain_file(sslCtx,zCertFile)!=1 ){
720 724 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
ERR_print_errors_fp(stderr);
721 725 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_fatal("Error loading CERT file \"%s\"", zCertFile);
722 726 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
723 727 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zKeyFile==0 ) zKeyFile = zCertFile;
724 728 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( SSL_CTX_use_PrivateKey_file(sslCtx, zKeyFile, SSL_FILETYPE_PEM)<=0 ){
725 729 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
ERR_print_errors_fp(stderr);
726 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fossil_fatal("Error loading PRIVATE KEY from file \"%s\"", zKeyFile);
727 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
728 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else
729 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( (zTlsCert = db_get("ssl-cert",0))!=0 ){
730 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( sslctx_use_cert_from_mem(sslCtx, zTlsCert, -1)
731 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- || sslctx_use_pkey_from_mem(sslCtx, zTlsCert, -1)
732 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ){
733 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fossil_fatal("Error loading the CERT from the"
734 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- " 'ssl-cert' setting");
735 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
736 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else if( sslctx_use_cert_from_mem(sslCtx, sslSelfCert, -1)
737 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- || sslctx_use_pkey_from_mem(sslCtx, sslSelfPKey, -1) ){
738 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fossil_fatal("Error loading self-signed CERT");
730 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( strcmp(zKeyFile,zCertFile)==0 ){
731 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fossil_fatal("The private key is not found in \"%s\". "
732 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "Either append the private key to the certification in that "
733 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "file or use a separate --pkey option to specify the private key.",
734 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zKeyFile);
735 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
736 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fossil_fatal("Error loading the private key from file \"%s\"",
737 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zKeyFile);
738 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
739 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
739 740 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
740 741 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !SSL_CTX_check_private_key(sslCtx) ){
741 742 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_fatal("PRIVATE KEY \"%s\" does not match CERT \"%s\"",
742 743 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zKeyFile, zCertFile);
743 744 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -866,21 +867,10 @@
866 867 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Security) configuration for Fossil. TLS (formerly SSL) is the
867 868 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** encryption technology used for secure HTTPS transport.
868 869 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
869 870 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Sub-commands:
870 871 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
871 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** clear-cert Remove information about server certificates.
872 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** This is a subset of the "scrub" command.
873 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
874 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** load-cert PEM-FILES... Identify server certificate files. These
875 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** should be in the PEM format. There are
876 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** normally two files, the certificate and the
877 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** private-key. By default, the text of both
878 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** files is concatenated and added to the
879 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** "ssl-cert" setting. Use --filename to store
880 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** just the filenames.
881 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
882 872 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** remove-exception DOMAINS Remove TLS cert exceptions for the domains
883 873 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** listed. Or remove them all if the --all
884 874 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** option is specified.
885 875 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
886 876 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** scrub ?--force? Remove all SSL configuration data from the
@@ -901,102 +891,10 @@
901 891 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
nCmd = 4;
902 892 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
903 893 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zCmd = g.argv[2];
904 894 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
nCmd = strlen(zCmd);
905 895 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
906 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( strncmp("clear-cert",zCmd,nCmd)==0 && nCmd>=4 ){
907 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int bForce = find_option("force","f",0)!=0;
908 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- verify_all_options();
909 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( !bForce ){
910 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Blob ans;
911 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char cReply;
912 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- prompt_user(
913 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "Confirm removing of the SSL server certificate from this repository.\n"
914 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "The removal cannot be undone. Continue (y/N)? ", &ans);
915 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- cReply = blob_str(&ans)[0];
916 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( cReply!='y' && cReply!='Y' ){
917 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fossil_exit(1);
918 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
919 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
920 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- db_unprotect(PROTECT_ALL);
921 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- db_multi_exec(
922 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "PRAGMA secure_delete=ON;"
923 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "DELETE FROM config "
924 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- " WHERE name IN ('ssl-cert','ssl-cert-file','ssl-cert-key');"
925 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- );
926 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- db_protect_pop();
927 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else
928 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( strncmp("load-cert",zCmd,nCmd)==0 && nCmd>=4 ){
929 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int bFN = find_option("filename",0,0)!=0;
930 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int i;
931 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Blob allText = BLOB_INITIALIZER;
932 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int haveCert = 0;
933 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int haveKey = 0;
934 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- verify_all_options();
935 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- db_begin_transaction();
936 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- db_unprotect(PROTECT_ALL);
937 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- db_multi_exec(
938 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "PRAGMA secure_delete=ON;"
939 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "DELETE FROM config "
940 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- " WHERE name IN ('ssl-cert','ssl-cert-file','ssl-cert-key');"
941 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- );
942 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- nHit = 0;
943 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- for(i=3; i<g.argc; i++){
944 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Blob x;
945 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int isCert;
946 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int isKey;
947 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( !file_isfile(g.argv[i], ExtFILE) ){
948 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fossil_fatal("no such file: \"%s\"", g.argv[i]);
949 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
950 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_read_from_file(&x, g.argv[i], ExtFILE);
951 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- isCert = strstr(blob_str(&x),"-----BEGIN CERTIFICATE-----")!=0;
952 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- isKey = strstr(blob_str(&x),"-----BEGIN PRIVATE KEY-----")!=0;
953 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( !isCert && !isKey ){
954 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fossil_fatal("not a certificate or a private key: \"%s\"", g.argv[i]);
955 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
956 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( isCert ){
957 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( haveCert ){
958 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fossil_fatal("more than one certificate provided");
959 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
960 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- haveCert = 1;
961 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( bFN ){
962 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- db_set("ssl-cert-file", file_canonical_name_dup(g.argv[i]), 0);
963 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
964 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_append(&allText, blob_buffer(&x), blob_size(&x));
965 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
966 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( isKey && !haveKey ){
967 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- haveKey = 1;
968 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- isKey = 0;
969 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
970 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
971 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( isKey ){
972 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( haveKey ){
973 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fossil_fatal("more than one private key provided");
974 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
975 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- haveKey = 1;
976 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( bFN ){
977 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- db_set("ssl-key-file", file_canonical_name_dup(g.argv[i]), 0);
978 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
979 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_append(&allText, blob_buffer(&x), blob_size(&x));
980 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
981 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
982 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
983 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( !haveCert ){
984 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( !haveKey ){
985 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fossil_fatal("missing certificate and private-key");
986 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
987 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fossil_fatal("missing certificate");
988 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
989 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else if( !haveKey ){
990 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fossil_fatal("missing private-key");
991 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
992 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( !bFN ){
993 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- db_set("ssl-cert", blob_str(&allText), 0);
994 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
995 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- db_protect_pop();
996 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- db_commit_transaction();
997 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else
998 896 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( strncmp("scrub",zCmd,nCmd)==0 && nCmd>4 ){
999 897 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int bForce = find_option("force","f",0)!=0;
1000 898 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
verify_all_options();
1001 899 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !bForce ){
1002 900 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Blob ans;
@@ -1084,37 +982,14 @@
1084 982 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1085 983 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1086 984 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_print("ssl-identity: %s\n", db_get("ssl-identity",""));
1087 985 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( verbose ){
1088 986 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_print("\n"
1089 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- " This setting is the name of a file that contains the PEM-format\n"
1090 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- " certificate and private-key used by Fossil clients to authenticate\n"
1091 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- " with servers. Few servers actually require this, so this setting\n"
1092 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- " is usually blank.\n\n"
1093 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- );
1094 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
1095 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
1096 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zValue = db_get("ssl-cert",0);
1097 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( zValue ){
1098 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fossil_print("ssl-cert: (%d-byte PEM)\n", (int)strlen(zValue));
1099 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
1100 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fossil_print("ssl-cert:\n");
1101 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
1102 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( verbose ){
1103 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fossil_print("\n"
1104 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- " This setting is the PEM-formatted value of the SSL server\n"
1105 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- " certificate and private-key, used by Fossil when it is acting\n"
1106 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- " as a server via the \"fossil server\" command or similar.\n\n"
1107 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- );
1108 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
1109 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
1110 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fossil_print("ssl-cert-file: %s\n", db_get("ssl-cert-file",""));
1111 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fossil_print("ssl-key-file: %s\n", db_get("ssl-key-file",""));
1112 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( verbose ){
1113 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fossil_print("\n"
1114 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- " This settings are the names of files that contain the certificate\n"
1115 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- " private-key used by Fossil when it is acting as a server.\n\n"
987 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " This setting is the name of a file that contains the PEM-format\n"
988 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " certificate and private-key used by Fossil clients to authenticate\n"
989 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " with servers. Few servers actually require this, so this setting\n"
990 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " is usually blank.\n\n"
1116 991 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
);
1117 992 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1118 993 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1119 994 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_prepare(&q,
1120 995 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"SELECT name, '' FROM global_config"
@@ -1179,11 +1054,11 @@
1179 1054 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_commit_transaction();
1180 1055 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_reset(&sql);
1181 1056 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else
1182 1057 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*default*/{
1183 1058 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_fatal("unknown sub-command \"%s\".\nshould be one of:"
1184 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- " clear-cert load-cert remove-exception scrub show",
1059 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " remove-exception scrub show",
1185 1060 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zCmd);
1186 1061 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1187 1062 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1188 1063 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1189 1064 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
1190 1065 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!