Browse Source

Fix incorrect IV usage which slightly reduced security

Shelikhoo 5 years ago
parent
commit
e2e266114a
2 changed files with 2 additions and 2 deletions
  1. 1 1
      proxy/vmess/encoding/client.go
  2. 1 1
      proxy/vmess/encoding/server.go

+ 1 - 1
proxy/vmess/encoding/client.go

@@ -71,7 +71,7 @@ func NewClientSession(idHash protocol.IDHash, ctx context.Context) *ClientSessio
 	} else {
 	} else {
 		BodyKey := sha256.Sum256(session.requestBodyKey[:])
 		BodyKey := sha256.Sum256(session.requestBodyKey[:])
 		copy(session.responseBodyKey[:], BodyKey[:16])
 		copy(session.responseBodyKey[:], BodyKey[:16])
-		BodyIV := sha256.Sum256(session.requestBodyKey[:])
+		BodyIV := sha256.Sum256(session.requestBodyIV[:])
 		copy(session.responseBodyIV[:], BodyIV[:16])
 		copy(session.responseBodyIV[:], BodyIV[:16])
 	}
 	}
 
 

+ 1 - 1
proxy/vmess/encoding/server.go

@@ -374,7 +374,7 @@ func (s *ServerSession) EncodeResponseHeader(header *protocol.ResponseHeader, wr
 	} else {
 	} else {
 		BodyKey := sha256.Sum256(s.requestBodyKey[:])
 		BodyKey := sha256.Sum256(s.requestBodyKey[:])
 		copy(s.responseBodyKey[:], BodyKey[:16])
 		copy(s.responseBodyKey[:], BodyKey[:16])
-		BodyIV := sha256.Sum256(s.requestBodyKey[:])
+		BodyIV := sha256.Sum256(s.requestBodyIV[:])
 		copy(s.responseBodyIV[:], BodyIV[:16])
 		copy(s.responseBodyIV[:], BodyIV[:16])
 	}
 	}