git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH]: Allow misc https cert for git-svnimport

From
EWEric Wong <normalperson@yhbt.net>
Date
May 2, 2006, 21:44 UTC
Message-ID
<20060502214455.GA4591@hand.yhbt.net>
In-Reply-To
<200604281801.07155.p_christ@hol.gr>
"P. Christeas" <p_christ@hol.gr> wrote:
> Just had to access a server with a broken certificate (self signed), so I 
> added that patch to git-svnimport.
Matthias should know more about git-svnimport than I do :)

I'm not fully up-to-date on how the SVN:: modules work for this, nor do I know off the top of my head an ssl svn server with a self-signed cert to test with. I just copied the ssl stuff off svn-mirror a while ago :)

Show 65 quoted lines
> --- /usr/bin/git-svnimport	2006-04-13 09:39:39.000000000 +0300
> +++ /home/panos/bin/git-svnimport	2006-04-28 17:55:45.000000000 +0300
> @@ -96,9 +96,14 @@
>  sub conn {
>  	my $self = shift;
>  	my $repo = $self->{'fullrep'};
> -	my $auth = SVN::Core::auth_open ([SVN::Client::get_simple_provider,
> +# 	my $auth = SVN::Core::auth_open ([SVN::Client::get_simple_provider,
> +# 			  SVN::Client::get_ssl_server_trust_file_provider,
> +# 			  SVN::Client::get_ssl_server_trust_prompt_provider(\&_trust_callback),
> +# 			  SVN::Client::get_username_provider]);
> +	my $auth = [SVN::Client::get_simple_provider,
>  			  SVN::Client::get_ssl_server_trust_file_provider,
> -			  SVN::Client::get_username_provider]);
> +			  SVN::Client::get_ssl_server_trust_prompt_provider(\&_trust_callback),
> +			  SVN::Client::get_username_provider];
>  	my $s = SVN::Ra->new(url => $repo, auth => $auth);
>  	die "SVN connection to $repo: $!\n" unless defined $s;
>  	$self->{'svn'} = $s;
> @@ -125,6 +130,45 @@
>  	return $name;
>  }
>  
> +sub _trust_callback {
> +	my ($cred,$realm,$ifailed,$server_cert_info,$may_save) = @_;
> +	#$cred->accepted_failures($SVN::Auth::SSL::UNKNOWNCA);
> +	print "SSL certificate is not trusted: $ifailed \n";
> +	print "Fingerprint: " . $server_cert_info->fingerprint . "\n";
> +	print "Hostname:    ". $server_cert_info->hostname ;
> +	print " (MISMATCH)" if ( $ifailed & $SVN::Auth::SSL::CNMISMATCH);
> +	print "\n";
> +	
> +	print "Valid from:  ". $server_cert_info->valid_from;
> +	print " (NOT YET)" if ( $ifailed & $SVN::Auth::SSL::NOTYETVALID);
> +	print "\n";
> +	
> +	print "Valid until: ". $server_cert_info->valid_until;
> +	print " (EXPIRED)" if ( $ifailed & $SVN::Auth::SSL::EXPIRED);
> +	print "\n";
> +	
> +	print "Issuer:      ". $server_cert_info->issuer_dname;
> +	print " (UNKNOWN)" if ( $ifailed & $SVN::Auth::SSL::UNKNOWNCA);
> +	print "\n\n";
> +	
> +	print "Do you still want to accept that certificate? [y/N] ";
> +	my $accept = <STDIN>;
> +	chomp($accept);
> +	print "\n";
> +	if (($accept eq "y") or ($accept eq "Y" )) {
> +		$cred->accepted_failures($ifailed);
> +	# 	print "Save cert, so that it is accepted in future calls? [y/N] ";
> +	# 	my $mmsave = <STDIN>;
> +	# 	chomp($mmsave);
> +	# 	if (($mmsave eq "y") or ($mmsave eq "Y" )) {
> +	# 		$may_save = 1;
> +	# 	}
> +		print "\n";
> +	}
> +
> +}
> +
> +
>  package main;
>  use URI;
>  
-- 
Eric Wong
Previous: P. Christeas
Message 2 of 2 in “: Allow misc https cert for git-svnimport”
  1. : Allow misc https cert for git-svnimportP. Christeas, Apr 28, 2006
  2. Eric WongMay 2, 2006

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.