| 1665 |
int hostkey_alg, hostkey_dtype, hostkey_dlen; |
int hostkey_alg, hostkey_dtype, hostkey_dlen; |
| 1666 |
BYTE *hostkey_digest; |
BYTE *hostkey_digest; |
| 1667 |
int found = DNS_VERIFY_NONE; |
int found = DNS_VERIFY_NONE; |
|
char buff[1024]; |
|
| 1668 |
|
|
| 1669 |
switch (key->type) { |
switch (key->type) { |
| 1670 |
case KEY_RSA: |
case KEY_RSA: |
| 1681 |
hostkey_alg = SSHFP_KEY_ECDSA; |
hostkey_alg = SSHFP_KEY_ECDSA; |
| 1682 |
hostkey_dtype = SSHFP_HASH_SHA256; |
hostkey_dtype = SSHFP_HASH_SHA256; |
| 1683 |
break; |
break; |
| 1684 |
default: // Un-supported algorighm |
default: // Un-supported algorithm |
| 1685 |
hostkey_alg = SSHFP_KEY_RESERVED; |
hostkey_alg = SSHFP_KEY_RESERVED; |
| 1686 |
hostkey_dtype = SSHFP_HASH_RESERVED; |
hostkey_dtype = SSHFP_HASH_RESERVED; |
| 1687 |
} |
} |
| 1702 |
if (t->Algorithm == hostkey_alg && t->DigestType == hostkey_dtype) { |
if (t->Algorithm == hostkey_alg && t->DigestType == hostkey_dtype) { |
| 1703 |
if (hostkey_dlen == p->wDataLength-2 && memcmp(hostkey_digest, t->Digest, hostkey_dlen) == 0) { |
if (hostkey_dlen == p->wDataLength-2 && memcmp(hostkey_digest, t->Digest, hostkey_dlen) == 0) { |
| 1704 |
found = DNS_VERIFY_MATCH; |
found = DNS_VERIFY_MATCH; |
|
_snprintf_s(buff, sizeof(buff), _TRUNCATE, "Match: alg=%d, dgst=%d, flags=%d (%x)", |
|
|
t->Algorithm, t->DigestType, p->Flags); |
|
|
MessageBox(NULL, buff, "DNS Verify Match", MB_OK); |
|
| 1705 |
break; |
break; |
| 1706 |
} |
} |
| 1707 |
else { |
else { |
| 1708 |
found = DNS_VERIFY_MISMATCH; |
found = DNS_VERIFY_MISMATCH; |
|
_snprintf_s(buff, sizeof(buff), _TRUNCATE, "Missmatch: alg=%d, dgst=%d, flags=%d (%x)", |
|
|
t->Algorithm, t->DigestType, p->Flags); |
|
|
MessageBox(NULL, buff, "DNS Verify Missmatch", MB_OK); |
|
| 1709 |
break; |
break; |
| 1710 |
} |
} |
| 1711 |
} |
} |