go.crypto/hkdf: implement hash-based, key derivation.

Detailed description in RFC 5869.

LGTM=agl
R=agl, minux.ma
CC=golang-codereviews
https://codereview.appspot.com/7474049

Committer: Adam Langley <agl@golang.org>
go.crypto/ssh: build tests on Plan 9

LGTM=minux.ma
R=golang-codereviews, minux.ma
CC=golang-codereviews
https://codereview.appspot.com/64390044
go.crypto/blowfish: allow shorter passwords.

bcrypt didn't allow one, two and three letter passwords which is a
policy decision best left to the user of the code. Some users have
legacy issues which require such short passwords to be processed.

LGTM=bradfitz
R=golang-codereviews, bradfitz
CC=golang-codereviews
https://codereview.appspot.com/81800044
go.crypto/ssh: import gosshnew.

See https://groups.google.com/d/msg/Golang-nuts/AoVxQ4bB5XQ/i8kpMxdbVlEJ

R=hanwen
CC=golang-codereviews
https://codereview.appspot.com/86190043
go.crypto/ssh: remove old files.

In c0fc595a2cb5, hg didn't notice the files that had been removed from
the working directory. These, old files are breaking the build.

CC=golang-codereviews
https://codereview.appspot.com/86240043
go.crypto/ssh: build test_unix_test on Plan 9

LGTM=minux.ma
R=golang-codereviews, minux.ma
CC=golang-codereviews
https://codereview.appspot.com/86630043
go.crypto/ssh: only offset channel IDs when debugMux is
set.

Otherwise, the package leaks data about total number of
connections established through its channel IDs.

R=agl, jpsugar
CC=golang-codereviews
https://codereview.appspot.com/87280043

Committer: Adam Langley <agl@golang.org>
go.crypto/ssh: Add support for the pre-2006 RC4 cipher mode.

LGTM=hanwen
R=agl, hanwen
CC=golang-codereviews
https://codereview.appspot.com/86600044

Committer: Adam Langley <agl@golang.org>
go.crypto/ssh: fix messages_test.go on 32-bit platforms.

LGTM=dave
R=agl, dave
CC=golang-codereviews
https://codereview.appspot.com/88060043

Committer: Adam Langley <agl@golang.org>
go.crypto/ssh/agent: prefix errors with "agent".

R=agl, dave, jpsugar
CC=golang-codereviews
https://codereview.appspot.com/87810047

Committer: Adam Langley <agl@golang.org>
go.crypto/ssh/agent: add key type to testAgentInterface failure messages.

R=agl, dave, jpsugar
CC=golang-codereviews
https://codereview.appspot.com/88260043

Committer: Adam Langley <agl@golang.org>
ssh/forward: Fix reference to the functions to call to route authentication requests.

R=agl
CC=golang-codereviews, hanwen
https://codereview.appspot.com/95910043

Committer: Adam Langley <agl@golang.org>
go.crypto/openpgp: check for revoked keys.

R=agl
CC=golang-codereviews
https://codereview.appspot.com/95050043
go.crypto/blowfish: no need for key in initCipher

LGTM=robert.hencke
R=golang-codereviews, robert.hencke
CC=golang-codereviews
https://codereview.appspot.com/84860043

Committer: Adam Langley <agl@golang.org>
go.crypto/ssh/terminal: add support for BSD variants

LGTM=agl
R=golang-codereviews, agl
CC=golang-codereviews
https://codereview.appspot.com/97850043

Committer: Adam Langley <agl@golang.org>
go.crypto/ssh/test: enable test cases on dragonfly

LGTM=agl
R=golang-codereviews, agl
CC=golang-codereviews
https://codereview.appspot.com/98840043

Committer: Adam Langley <agl@golang.org>
go.crypto/ssh: try authentication methods in ClientConfig order.

LGTM=jpsugar, agl
R=agl, jpsugar
CC=golang-codereviews
https://codereview.appspot.com/92240045

Committer: Adam Langley <agl@golang.org>
go.crypto/ssh: use permissions from public key cache when accepting a key.

Fixes issue 7913.

LGTM=hanwen
R=hanwen
CC=golang-codereviews
https://codereview.appspot.com/96220043
go.crypto/openpgp: fix user id signing.

Entity.SignIdentity used the wrong signature function and produced invalid
certification signatures. Fixed.

VerifyUserIdSignature was used for checking the self-signature on an identity,
but didn't support anything but a self-signature. This change alters the
low-level API so that checking cross-signatures is possible.

Fixes issue 7371.

LGTM=bradfitz
R=bradfitz
CC=golang-codereviews
https://codereview.appspot.com/96240043
go.crypto/ssh: fix authentication after all public keys are rejected by a server.

Validating a public key doesn't return any remaining methods so, if all public keys were rejected, a nil slice would be returned for the remaining methods and authentication would stop.

We could have validateKey return methods, but that wouldn't solve the problem of what to do if the callback returns no keys. In that case we don't have any keys to test.

So this change makes it possible for an AuthMethod to return a nil slice for the remaining methods (meaning "reuse the last list"). It also fixes a scoping bug.

Fixes issue 7787.

LGTM=hanwen
R=hanwen
CC=golang-codereviews
https://codereview.appspot.com/94350043