Merge pull request #5 from phpseclib/master

Sync
[Triple]DES, Rijndael: Fix overflow in OFB mode

Related to: https://github.com/phpseclib/phpseclib/issues/77
Sync
Merge pull request #9 from phpseclib/master

sync
Merge pull request #10 from phpseclib/master

Sync
RSA: Add CRYPT_RSA_PKCS15_COMPAT mode
SFTP_Stream: Better EOF detection

$result will be false on error and '' if the EOF is reached.
SFTP: add a few comments
ASN1: if an int val would be '' make it be "\0"
SFTP_Stream: update includes
SSH2: Be less overly clever loading Crypt/Random
X509: Revamp base64 handling
Merge branch 'master' of https://github.com/phpseclib/phpseclib
Merge pull request #87 from terite/master

Fix SSH2 when autoloaded from Composer
RSA: apply terite's changes to RSA.php too
Net_SFTP_Stream: Add limited support for notifications and...

...add NET_SFTP_STREAM_LOGGING
Merge branch 'master' of https://github.com/phpseclib/phpseclib
SSH2: add support for multi-factor authentication
SSH2: More multi-factor authentication changes

Previously to do multi-factor authentication you'd have to do this:

$ssh->login($user, 'pass1');
$ssh->login($user, 'pass2');

Now you can do this too:

$ssh->login($user, 'pass1', 'pass2');
SSH2: keyboard-interactive changes

Let's say your SSH server had a two-part keyboard-interactive auth. One prompt is for "Password" and the other is for "Verification code". Previously you'd have to do this:

$ssh->login($username, 'pass1', 'code1');

It'd try password authentication with pass1, fail, then do keyboard-interactive with pass1 and then keyboard-interacitve with code1.

ie. the order in which it tried stuff was dependent on the order it was past to the Net_SSH2 object.  And it'd always try password auth first.

Now you can go straight to keyboard-interactive and mix the order as follows:

$ssh->login($username, array('Password' => 'pass1'), array('Verification code' => 'code1'));