| 4314 |
ptr = signature; |
ptr = signature; |
| 4315 |
|
|
| 4316 |
// step1 |
// step1 |
| 4317 |
len = get_uint32_MSBfirst(ptr); |
if (signaturelen == 0x28) { |
| 4318 |
ptr += 4; |
// workaround for SSH-2.0-2.0* and SSH-2.0-2.1* (2006.11.18 maya) |
| 4319 |
/* |
ptr -= 4; |
|
if (strncmp("ssh-dss", ptr, len) != 0) { |
|
|
return -3; |
|
|
} |
|
|
ptr += len; |
|
|
*/ |
|
|
// workaround for SSH-2.0-2.0* and SSH-2.0-2.1* (2006.11.17 maya) |
|
|
if (strncmp("ssh-dss", ptr, len) != 0) { |
|
|
ptr -= 8; |
|
| 4320 |
} |
} |
| 4321 |
else { |
else { |
| 4322 |
|
len = get_uint32_MSBfirst(ptr); |
| 4323 |
|
ptr += 4; |
| 4324 |
|
if (strncmp("ssh-dss", ptr, len) != 0) { |
| 4325 |
|
return -3; |
| 4326 |
|
} |
| 4327 |
ptr += len; |
ptr += len; |
| 4328 |
} |
} |
| 4329 |
|
|
| 4481 |
ptr = signature; |
ptr = signature; |
| 4482 |
|
|
| 4483 |
// step1 |
// step1 |
| 4484 |
len = get_uint32_MSBfirst(ptr); |
if (signaturelen == 0x28) { |
| 4485 |
ptr += 4; |
// workaround for SSH-2.0-2.0* and SSH-2.0-2.1* (2006.11.18 maya) |
| 4486 |
/* |
ptr -= 4; |
|
if (strncmp("ssh-rsa", ptr, len) != 0) { |
|
|
return -4; |
|
|
} |
|
|
ptr += len; |
|
|
*/ |
|
|
// workaround for SSH-2.0-2.0* and SSH-2.0-2.1* (2006.11.17 maya) |
|
|
if (strncmp("ssh-rsa", ptr, len) != 0) { |
|
|
ptr -= 8; |
|
| 4487 |
} |
} |
| 4488 |
else { |
else { |
| 4489 |
|
len = get_uint32_MSBfirst(ptr); |
| 4490 |
|
ptr += 4; |
| 4491 |
|
if (strncmp("ssh-rsa", ptr, len) != 0) { |
| 4492 |
|
return -4; |
| 4493 |
|
} |
| 4494 |
ptr += len; |
ptr += len; |
| 4495 |
} |
} |
| 4496 |
|
|
| 6980 |
|
|
| 6981 |
/* |
/* |
| 6982 |
* $Log: not supported by cvs2svn $ |
* $Log: not supported by cvs2svn $ |
| 6983 |
|
* Revision 1.61 2006/11/17 09:12:02 maya |
| 6984 |
|
* SSH-2.0-2.0*, SSH-2.0-2.1* サーバのバグに対する workaround を追加した。 |
| 6985 |
|
* バージョンチェックをせずにデータだけで判断しているので、改良の余地あり。 |
| 6986 |
|
* |
| 6987 |
* Revision 1.60 2006/11/14 09:00:40 maya |
* Revision 1.60 2006/11/14 09:00:40 maya |
| 6988 |
* エラーメッセージを修正した。 |
* エラーメッセージを修正した。 |
| 6989 |
* |
* |