shithub: riscv

Download patch

ref: 1c3377a67ff06f49e9e5e33275fb40dcca370318
parent: 8ff72ce20ddeaa6fce39bc722cfd0e2d826fc6eb
author: cinap_lenrek <cinap_lenrek@felloff.net>
date: Sat Jan 6 03:37:32 EST 2018

factotum: remove unused sshrsa.c

--- a/sys/src/cmd/auth/factotum/sshrsa.c
+++ /dev/null
@@ -1,180 +1,0 @@
-/*
- * SSH RSA authentication.
- * 
- * Client protocol:
- *	read public key
- *		if you don't like it, read another, repeat
- *	write challenge
- *	read response
- * all numbers are hexadecimal biginits parsable with strtomp.
- */
-
-#include "dat.h"
-
-enum {
-	CHavePub,
-	CHaveResp,
-
-	Maxphase,
-};
-
-static char *phasenames[] = {
-[CHavePub]	"CHavePub",
-[CHaveResp]	"CHaveResp",
-};
-
-struct State
-{
-	RSApriv *priv;
-	mpint *resp;
-	int off;
-	Key *key;
-};
-
-static RSApriv*
-readrsapriv(Key *k)
-{
-	char *a;
-	RSApriv *priv;
-
-	priv = rsaprivalloc();
-
-	if((a=_strfindattr(k->attr, "ek"))==nil || (priv->pub.ek=strtomp(a, nil, 16, nil))==nil)
-		goto Error;
-	if((a=_strfindattr(k->attr, "n"))==nil || (priv->pub.n=strtomp(a, nil, 16, nil))==nil)
-		goto Error;
-	if((a=_strfindattr(k->privattr, "!p"))==nil || (priv->p=strtomp(a, nil, 16, nil))==nil)
-		goto Error;
-	if((a=_strfindattr(k->privattr, "!q"))==nil || (priv->q=strtomp(a, nil, 16, nil))==nil)
-		goto Error;
-	if((a=_strfindattr(k->privattr, "!kp"))==nil || (priv->kp=strtomp(a, nil, 16, nil))==nil)
-		goto Error;
-	if((a=_strfindattr(k->privattr, "!kq"))==nil || (priv->kq=strtomp(a, nil, 16, nil))==nil)
-		goto Error;
-	if((a=_strfindattr(k->privattr, "!c2"))==nil || (priv->c2=strtomp(a, nil, 16, nil))==nil)
-		goto Error;
-	if((a=_strfindattr(k->privattr, "!dk"))==nil || (priv->dk=strtomp(a, nil, 16, nil))==nil)
-		goto Error;
-	return priv;
-
-Error:
-	rsaprivfree(priv);
-	return nil;
-}
-
-static int
-sshrsainit(Proto*, Fsstate *fss)
-{
-	int iscli;
-	State *s;
-
-	if((iscli = isclient(_strfindattr(fss->attr, "role"))) < 0)
-		return failure(fss, nil);
-	if(iscli==0)
-		return failure(fss, "sshrsa server unimplemented");
-
-	s = emalloc(sizeof *s);
-	fss->phasename = phasenames;
-	fss->maxphase = Maxphase;
-	fss->phase = CHavePub;
-	fss->ps = s;
-	return RpcOk;
-}
-
-static int
-sshrsaread(Fsstate *fss, void *va, uint *n)
-{
-	RSApriv *priv;
-	State *s;
-
-	s = fss->ps;
-	switch(fss->phase){
-	default:
-		return phaseerror(fss, "read");
-	case CHavePub:
-		if(s->key){
-			closekey(s->key);
-			s->key = nil;
-		}
-		if(findkey(&s->key, fss, fss->sysuser, 1, s->off, fss->attr, nil) != RpcOk)
-			return failure(fss, nil);
-		s->off++;
-		priv = s->key->priv;
-		*n = snprint(va, *n, "%B", priv->pub.n);
-		return RpcOk;
-	case CHaveResp:
-		*n = snprint(va, *n, "%B", s->resp);
-		fss->phase = Established;
-		return RpcOk;
-	}
-}
-
-static int
-sshrsawrite(Fsstate *fss, void *va, uint)
-{
-	mpint *m;
-	State *s;
-
-	s = fss->ps;
-	switch(fss->phase){
-	default:
-		return phaseerror(fss, "write");
-	case CHavePub:
-		if(s->key == nil)
-			return failure(fss, "no current key");
-		switch(canusekey(fss, s->key)){
-		case -1:
-			return RpcConfirm;
-		case 0:
-			return failure(fss, "confirmation denied");
-		case 1:
-			break;
-		}
-		m = strtomp(va, nil, 16, nil);
-		m = rsadecrypt(s->key->priv, m, m);
-		s->resp = m;
-		fss->phase = CHaveResp;
-		return RpcOk;
-	}
-}
-
-static void
-sshrsaclose(Fsstate *fss)
-{
-	State *s;
-
-	s = fss->ps;
-	if(s->key)
-		closekey(s->key);
-	if(s->resp)
-		mpfree(s->resp);
-	free(s);
-}
-
-static int
-sshrsaaddkey(Key *k, int before)
-{
-	fmtinstall('B', mpfmt);
-
-	if((k->priv = readrsapriv(k)) == nil){
-		werrstr("malformed key data");
-		return -1;
-	}
-	return replacekey(k, before);
-}
-
-static void
-sshrsaclosekey(Key *k)
-{
-	rsaprivfree(k->priv);
-}
-
-Proto sshrsa = {
-.name=	"sshrsa",
-.init=		sshrsainit,
-.write=	sshrsawrite,
-.read=	sshrsaread,
-.close=	sshrsaclose,
-.addkey=	sshrsaaddkey,
-.closekey=	sshrsaclosekey,
-};