소스 검색

go.crypto/ssh: remove misleading marshalPrivRSA.

Properly capitalize publicKey throughout.

R=golang-dev
CC=agl, dave, golang-dev, jpsugar
https://golang.org/cl/13415046
Han-Wen Nienhuys 12 년 전
부모
커밋
f17d130281
7개의 변경된 파일13개의 추가작업 그리고 28개의 파일을 삭제
  1. 1 1
      ssh/agent.go
  2. 1 1
      ssh/certs.go
  3. 3 3
      ssh/client_auth.go
  4. 3 3
      ssh/client_auth_test.go
  5. 2 2
      ssh/common.go
  6. 2 17
      ssh/keys.go
  7. 1 1
      ssh/server.go

+ 1 - 1
ssh/agent.go

@@ -206,7 +206,7 @@ func (ac *AgentClient) RequestIdentities() ([]*AgentKey, error) {
 // as defined in [PROTOCOL.agent] section 2.6.2.
 func (ac *AgentClient) SignRequest(key interface{}, data []byte) ([]byte, error) {
 	req := marshal(agentSignRequest, signRequestAgentMsg{
-		KeyBlob: serializePublickey(key),
+		KeyBlob: serializePublicKey(key),
 		Data:    data,
 	})
 

+ 1 - 1
ssh/certs.go

@@ -160,7 +160,7 @@ func marshalOpenSSHCertV01(cert *OpenSSHCertV01) []byte {
 		panic("ssh: unknown public key type in cert")
 	}
 
-	sigKey := serializePublickey(cert.SignatureKey)
+	sigKey := serializePublicKey(cert.SignatureKey)
 
 	length := stringLength(len(cert.Nonce))
 	length += len(pubKey)

+ 3 - 3
ssh/client_auth.go

@@ -214,7 +214,7 @@ func (p *publickeyAuth) auth(session []byte, user string, t *transport, rand io.
 	// methods that may continue if this auth is not successful.
 	var methods []string
 	for i, key := range validKeys {
-		pubkey := serializePublickey(key)
+		pubkey := serializePublicKey(key)
 		algoname := algoName(key)
 		sign, err := p.Sign(i, rand, buildDataSignedForAuth(session, userAuthRequestMsg{
 			User:    user,
@@ -254,7 +254,7 @@ func (p *publickeyAuth) auth(session []byte, user string, t *transport, rand io.
 
 // validateKey validates the key provided it is acceptable to the server.
 func (p *publickeyAuth) validateKey(key interface{}, user string, t *transport) (bool, error) {
-	pubkey := serializePublickey(key)
+	pubkey := serializePublicKey(key)
 	algoname := algoName(key)
 	msg := publickeyAuthMsg{
 		User:     user,
@@ -272,7 +272,7 @@ func (p *publickeyAuth) validateKey(key interface{}, user string, t *transport)
 }
 
 func (p *publickeyAuth) confirmKeyAck(key interface{}, t *transport) (bool, error) {
-	pubkey := serializePublickey(key)
+	pubkey := serializePublicKey(key)
 	algoname := algoName(key)
 
 	for {

+ 3 - 3
ssh/client_auth_test.go

@@ -135,7 +135,7 @@ var (
 		},
 		PublicKeyCallback: func(conn *ServerConn, user, algo string, pubkey []byte) bool {
 			key := &clientKeychain.keys[0].(*rsa.PrivateKey).PublicKey
-			expected := []byte(serializePublickey(key))
+			expected := []byte(serializePublicKey(key))
 			algoname := algoName(key)
 			return user == "testuser" && algo == algoname && bytes.Equal(pubkey, expected)
 		},
@@ -198,7 +198,7 @@ func newMockAuthServer(t *testing.T) string {
 	return l.Addr().String()
 }
 
-func TestClientAuthPublickey(t *testing.T) {
+func TestClientAuthPublicKey(t *testing.T) {
 	config := &ClientConfig{
 		User: "testuser",
 		Auth: []ClientAuth{
@@ -283,7 +283,7 @@ func TestClientAuthWrongKeyboardInteractive(t *testing.T) {
 }
 
 // the mock server will only authenticate ssh-rsa keys
-func TestClientAuthInvalidPublickey(t *testing.T) {
+func TestClientAuthInvalidPublicKey(t *testing.T) {
 	kc := new(keychain)
 	kc.keys = append(kc.keys, dsakey)
 	config := &ClientConfig{

+ 2 - 2
ssh/common.go

@@ -248,7 +248,7 @@ func serializeSignature(algoname string, sig []byte) []byte {
 }
 
 // serialize a *rsa.PublicKey or *dsa.PublicKey according to RFC 4253 6.6.
-func serializePublickey(key interface{}) []byte {
+func serializePublicKey(key interface{}) []byte {
 	var pubKeyBytes []byte
 	algoname := algoName(key)
 	switch key := key.(type) {
@@ -304,7 +304,7 @@ func algoName(key interface{}) string {
 			}
 		}
 	}
-	panic("unexpected key type")
+	panic(fmt.Sprintf("unexpected key type %T", key))
 }
 
 // buildDataSignedForAuth returns the data that is signed in order to prove

+ 2 - 17
ssh/keys.go

@@ -125,21 +125,6 @@ func parseECDSA(in []byte) (out *ecdsa.PublicKey, rest []byte, ok bool) {
 	return key, in, ok
 }
 
-// marshalPrivRSA serializes an RSA private key according to RFC 4253, section 6.6.
-func marshalPrivRSA(priv *rsa.PrivateKey) []byte {
-	e := new(big.Int).SetInt64(int64(priv.E))
-	length := stringLength(len(KeyAlgoRSA))
-	length += intLength(e)
-	length += intLength(priv.N)
-
-	ret := make([]byte, length)
-	r := marshalString(ret, []byte(KeyAlgoRSA))
-	r = marshalInt(r, e)
-	r = marshalInt(r, priv.N)
-
-	return ret
-}
-
 // marshalPubRSA serializes an RSA public key according to RFC 4253, section 6.6.
 func marshalPubRSA(key *rsa.PublicKey) []byte {
 	e := new(big.Int).SetInt64(int64(key.E))
@@ -334,7 +319,7 @@ func MarshalAuthorizedKey(key interface{}) []byte {
 	b.WriteString(algoName(key))
 	b.WriteByte(' ')
 	e := base64.NewEncoder(base64.StdEncoding, b)
-	e.Write(serializePublickey(key))
+	e.Write(serializePublicKey(key))
 	e.Close()
 	b.WriteByte('\n')
 	return b.Bytes()
@@ -345,5 +330,5 @@ func MarshalAuthorizedKey(key interface{}) []byte {
 // of ServerConfig's PublicKeyCallback as well as for generating an
 // authorized_keys or host_keys file.
 func MarshalPublicKey(key interface{}) []byte {
-	return serializePublickey(key)
+	return serializePublicKey(key)
 }

+ 1 - 1
ssh/server.go

@@ -82,7 +82,7 @@ func (s *ServerConfig) SetRSAPrivateKey(pemBytes []byte) error {
 		return err
 	}
 
-	s.rsaSerialized = marshalPrivRSA(s.rsa)
+	s.rsaSerialized = serializePublicKey(&s.rsa.PublicKey)
 	return nil
 }