Generate the digest value for a DS key @param key Which is covered by the DS record @param digestid The type of digest @return The digest value as an array of bytes
(DNSKEYRecord key, int digestid)
| 1135 | * @return The digest value as an array of bytes |
| 1136 | */ |
| 1137 | static byte [] |
| 1138 | generateDSDigest(DNSKEYRecord key, int digestid) |
| 1139 | { |
| 1140 | MessageDigest digest; |
| 1141 | try { |
| 1142 | switch (digestid) { |
| 1143 | case DSRecord.Digest.SHA1: |
| 1144 | digest = MessageDigest.getInstance("sha-1"); |
| 1145 | break; |
| 1146 | case DSRecord.Digest.SHA256: |
| 1147 | digest = MessageDigest.getInstance("sha-256"); |
| 1148 | break; |
| 1149 | case DSRecord.Digest.GOST3411: |
| 1150 | digest = MessageDigest.getInstance("GOST3411"); |
| 1151 | break; |
| 1152 | case DSRecord.Digest.SHA384: |
| 1153 | digest = MessageDigest.getInstance("sha-384"); |
| 1154 | break; |
| 1155 | default: |
| 1156 | throw new IllegalArgumentException( |
| 1157 | "unknown DS digest type " + digestid); |
| 1158 | } |
| 1159 | } |
| 1160 | catch (NoSuchAlgorithmException e) { |
| 1161 | throw new IllegalStateException("no message digest support"); |
| 1162 | } |
| 1163 | digest.update(key.getName().toWireCanonical()); |
| 1164 | digest.update(key.rdataToWireCanonical()); |
| 1165 | return digest.digest(); |
| 1166 | } |
| 1167 | |
| 1168 | } |
no test coverage detected