@relaycorp/dnssec
Advanced tools
Comparing version 1.9.1 to 1.10.0
@@ -1,10 +0,10 @@ | ||
export type { IanaRrTypeName, IanaRrTypeIdOrName } from './lib/dns/ianaRrTypes.js'; | ||
export type { DnsClassIdOrName } from './lib/dns/ianaClasses.js'; | ||
export type { DnsClassName } from './lib/dns/ianaClasses.js'; | ||
export { DnsClass } from './lib/dns/ianaClasses.js'; | ||
export type { Header } from './lib/dns/Header.js'; | ||
export { Message } from './lib/dns/Message.js'; | ||
export { Question } from './lib/dns/Question.js'; | ||
export { DnsRecord } from './lib/dns/DnsRecord.js'; | ||
export { RrSet } from './lib/dns/RrSet.js'; | ||
export type { IanaRrTypeName, IanaRrTypeIdOrName } from './lib/utils/dns/ianaRrTypes.js'; | ||
export type { DnsClassIdOrName } from './lib/utils/dns/ianaClasses.js'; | ||
export type { DnsClassName } from './lib/utils/dns/ianaClasses.js'; | ||
export { DnsClass } from './lib/utils/dns/ianaClasses.js'; | ||
export type { Header } from './lib/utils/dns/Header.js'; | ||
export { Message } from './lib/utils/dns/Message.js'; | ||
export { Question } from './lib/utils/dns/Question.js'; | ||
export { DnsRecord } from './lib/utils/dns/DnsRecord.js'; | ||
export { RrSet } from './lib/utils/dns/RrSet.js'; | ||
export { DatePeriod } from './lib/DatePeriod.js'; | ||
@@ -15,6 +15,6 @@ export { DigestType } from './lib/DigestType.js'; | ||
export { dnssecLookUp } from './lib/lookup.js'; | ||
export type { ChainVerificationResult, FailureResult, FailureStatus, VerifiedRrSet, } from './lib/results.js'; | ||
export { SecurityStatus } from './lib/SecurityStatus.js'; | ||
export type { ChainVerificationResult, FailureResult, FailureStatus, VerifiedRrSet, } from './lib/securityStatusResults.js'; | ||
export type { TrustAnchor } from './lib/TrustAnchor.js'; | ||
export type { VerificationOptions } from './lib/VerificationOptions.js'; | ||
export { MockChain } from './lib/testing/MockChain.js'; |
/* eslint-disable import/no-unused-modules */ | ||
export { DnsClass } from './lib/dns/ianaClasses.js'; | ||
export { Message } from './lib/dns/Message.js'; | ||
export { Question } from './lib/dns/Question.js'; | ||
export { DnsRecord } from './lib/dns/DnsRecord.js'; | ||
export { RrSet } from './lib/dns/RrSet.js'; | ||
export { DnsClass } from './lib/utils/dns/ianaClasses.js'; | ||
export { Message } from './lib/utils/dns/Message.js'; | ||
export { Question } from './lib/utils/dns/Question.js'; | ||
export { DnsRecord } from './lib/utils/dns/DnsRecord.js'; | ||
export { RrSet } from './lib/utils/dns/RrSet.js'; | ||
// DNSSEC-related | ||
@@ -8,0 +8,0 @@ export { DatePeriod } from './lib/DatePeriod.js'; |
@@ -1,2 +0,2 @@ | ||
import { DsData } from './rdata/DsData.js'; | ||
import { DsData } from './records/DsData.js'; | ||
/** | ||
@@ -3,0 +3,0 @@ * Set of root Key-Signing Keys (KSKs) as published by IANA. |
@@ -1,2 +0,2 @@ | ||
import { DsData } from './rdata/DsData.js'; | ||
import { DsData } from './records/DsData.js'; | ||
import { DnssecAlgorithm } from './DnssecAlgorithm.js'; | ||
@@ -3,0 +3,0 @@ import { DigestType } from './DigestType.js'; |
@@ -1,5 +0,5 @@ | ||
import type { Question } from './dns/Question.js'; | ||
import type { Question } from './utils/dns/Question.js'; | ||
import type { Resolver } from './Resolver.js'; | ||
import type { VerificationOptions } from './VerificationOptions.js'; | ||
import type { ChainVerificationResult } from './results.js'; | ||
import type { ChainVerificationResult } from './securityStatusResults.js'; | ||
/** | ||
@@ -6,0 +6,0 @@ * Retrieve RRset for `question` and return it only if DNSSEC validation succeeds. |
import { UnverifiedChain } from './UnverifiedChain.js'; | ||
import { DatePeriod } from './DatePeriod.js'; | ||
import { DsData } from './records/DsData.js'; | ||
import { IANA_TRUST_ANCHORS } from './ianaTrustAnchors.js'; | ||
import { DsData } from './rdata/DsData.js'; | ||
function convertTrustAnchors(trustAnchors) { | ||
@@ -6,0 +6,0 @@ return trustAnchors.map((anchor) => new DsData(anchor.keyTag, anchor.algorithm, anchor.digestType, anchor.digest)); |
/// <reference types="node" /> | ||
import type { Question } from './dns/Question.js'; | ||
import type { Message } from './dns/Message.js'; | ||
import type { Question } from './utils/dns/Question.js'; | ||
import type { Message } from './utils/dns/Message.js'; | ||
export type Resolver = (question: Question) => Promise<Buffer | Message>; |
@@ -1,5 +0,5 @@ | ||
import { RrSet } from './dns/RrSet.js'; | ||
import type { DnsRecord } from './dns/DnsRecord.js'; | ||
import type { DnskeyRecord, RrsigRecord } from './dnssecRecords.js'; | ||
import type { Question } from './dns/Question.js'; | ||
import { RrSet } from './utils/dns/RrSet.js'; | ||
import type { DnsRecord } from './utils/dns/DnsRecord.js'; | ||
import type { DnskeyRecord, RrsigRecord } from './records/dnssecRecords.js'; | ||
import type { Question } from './utils/dns/Question.js'; | ||
import type { DatePeriod } from './DatePeriod.js'; | ||
@@ -6,0 +6,0 @@ /** |
@@ -1,5 +0,5 @@ | ||
import { RrSet } from './dns/RrSet.js'; | ||
import { DnssecRecordType } from './DnssecRecordType.js'; | ||
import { RrsigData } from './rdata/RrsigData.js'; | ||
import { isChildZone } from './dns/name.js'; | ||
import { RrSet } from './utils/dns/RrSet.js'; | ||
import { DnssecRecordType } from './records/DnssecRecordType.js'; | ||
import { RrsigData } from './records/RrsigData.js'; | ||
import { isChildZone } from './utils/dns/name.js'; | ||
/** | ||
@@ -6,0 +6,0 @@ * RRset with one or more corresponding RRSigs. |
@@ -1,12 +0,12 @@ | ||
import { ZoneSigner } from '../utils/dnssec/ZoneSigner.js'; | ||
import { type RrSet } from '../dns/RrSet.js'; | ||
import { type RrSet } from '../utils/dns/RrSet.js'; | ||
import { type DatePeriod } from '../DatePeriod.js'; | ||
import { type SignatureOptions } from '../utils/dnssec/SignatureOptions.js'; | ||
import { type ZoneResponseSet } from '../utils/dnssec/responses.js'; | ||
import { Message } from '../dns/Message.js'; | ||
import { type ZoneResponseSet } from '../dnssecResponses.js'; | ||
import { Message } from '../utils/dns/Message.js'; | ||
import { type Resolver } from '../Resolver.js'; | ||
import { type DsData } from '../rdata/DsData.js'; | ||
import { type DsData } from '../records/DsData.js'; | ||
import { type TrustAnchor } from '../TrustAnchor.js'; | ||
import { SecurityStatus } from '../SecurityStatus.js'; | ||
import { type MockChainFixture } from './MockChainFixture.js'; | ||
import { type SignatureOptions } from './SignatureOptions.js'; | ||
import { ZoneSigner } from './ZoneSigner.js'; | ||
export declare class MockChain { | ||
@@ -13,0 +13,0 @@ protected readonly signers: readonly ZoneSigner[]; |
/* eslint-disable @typescript-eslint/no-magic-numbers */ | ||
import { addMinutes } from 'date-fns'; | ||
import { ZoneSigner } from '../utils/dnssec/ZoneSigner.js'; | ||
import { getZonesInChain } from '../utils/dns.js'; | ||
import { DnssecAlgorithm } from '../DnssecAlgorithm.js'; | ||
import { Message } from '../dns/Message.js'; | ||
import { Message } from '../utils/dns/Message.js'; | ||
import { SecurityStatus } from '../SecurityStatus.js'; | ||
import { RCODE_IDS } from '../dns/ianaRcodes.js'; | ||
import { RCODE_IDS } from '../utils/dns/ianaRcodes.js'; | ||
import { getZonesInName } from '../utils/dns/name.js'; | ||
import { ZoneSigner } from './ZoneSigner.js'; | ||
export class MockChain { | ||
static async generate(zoneName) { | ||
const zoneNames = getZonesInChain(zoneName); | ||
const zoneNames = getZonesInName(zoneName); | ||
const signers = await Promise.all(zoneNames.map(async (name) => ZoneSigner.generate(DnssecAlgorithm.RSASHA256, name))); | ||
@@ -13,0 +13,0 @@ return new MockChain(signers); |
import { type Resolver } from '../Resolver.js'; | ||
import { type TrustAnchor } from '../TrustAnchor.js'; | ||
import { type Message } from '../dns/Message.js'; | ||
import { type Message } from '../utils/dns/Message.js'; | ||
export interface MockChainFixture { | ||
@@ -5,0 +5,0 @@ readonly resolver: Resolver; |
@@ -1,4 +0,4 @@ | ||
import { Question } from './dns/Question.js'; | ||
import { Message } from './dns/Message.js'; | ||
import type { ChainVerificationResult, VerificationResult } from './results.js'; | ||
import { Question } from './utils/dns/Question.js'; | ||
import { Message } from './utils/dns/Message.js'; | ||
import type { ChainVerificationResult, VerificationResult } from './securityStatusResults.js'; | ||
import { Zone } from './Zone.js'; | ||
@@ -8,4 +8,4 @@ import type { DatePeriod } from './DatePeriod.js'; | ||
import type { Resolver } from './Resolver.js'; | ||
import type { DsData } from './rdata/DsData.js'; | ||
import type { RrSet } from './dns/RrSet.js'; | ||
import type { DsData } from './records/DsData.js'; | ||
import type { RrSet } from './utils/dns/RrSet.js'; | ||
interface MessageByKey { | ||
@@ -12,0 +12,0 @@ readonly [key: string]: Message | undefined; |
@@ -1,9 +0,9 @@ | ||
import { Question } from './dns/Question.js'; | ||
import { Message } from './dns/Message.js'; | ||
import { DnssecRecordType } from './DnssecRecordType.js'; | ||
import { augmentFailureResult } from './results.js'; | ||
import { Question } from './utils/dns/Question.js'; | ||
import { Message } from './utils/dns/Message.js'; | ||
import { DnssecRecordType } from './records/DnssecRecordType.js'; | ||
import { augmentFailureResult } from './securityStatusResults.js'; | ||
import { SecurityStatus } from './SecurityStatus.js'; | ||
import { Zone } from './Zone.js'; | ||
import { SignedRrSet } from './SignedRrSet.js'; | ||
import { getZonesInChain } from './utils/dns.js'; | ||
import { getZonesInName } from './utils/dns/name.js'; | ||
async function retrieveZoneMessages(zoneNames, recordType, classType, resolver) { | ||
@@ -27,3 +27,3 @@ const question = new Question('.', recordType, classType); | ||
}, {}); | ||
const zoneNames = getZonesInChain(query.name); | ||
const zoneNames = getZonesInName(query.name); | ||
const messageByKey = zoneNames.reduce((accumulator, zoneName) => { | ||
@@ -50,3 +50,3 @@ const dsKey = `${zoneName}/${DnssecRecordType.DS}`; | ||
}; | ||
const zoneNames = getZonesInChain(question.name); | ||
const zoneNames = getZonesInName(question.name); | ||
const dnskeyMessages = await retrieveZoneMessages(zoneNames, DnssecRecordType.DNSKEY, question.classId, finalResolver); | ||
@@ -94,3 +94,3 @@ const dsMessages = await retrieveZoneMessages(zoneNames.slice(1), // Skip the root DS | ||
let zones = [rootZone]; | ||
for (const zoneName of getZonesInChain(apexZoneName, false)) { | ||
for (const zoneName of getZonesInName(apexZoneName, false)) { | ||
const dnskeyKey = `${zoneName}/${DnssecRecordType.DNSKEY}`; | ||
@@ -97,0 +97,0 @@ const dnskeyResponse = this.zoneMessageByKey[dnskeyKey]; |
@@ -5,3 +5,3 @@ import { AsnParser, AsnSerializer } from '@peculiar/asn1-schema'; | ||
import { DnssecError } from '../../DnssecError.js'; | ||
import { EcdsaSignature } from './asn1Schemas/EcdsaSignature.js'; | ||
import { EcdsaSignature } from './EcdsaSignature.js'; | ||
import { ECDSA_CURVE_LENGTH } from './curves.js'; | ||
@@ -8,0 +8,0 @@ function convertEcdsaSignatureToDnssec(originalSignature, algorithm) { |
@@ -1,5 +0,5 @@ | ||
import { DsData } from './rdata/DsData.js'; | ||
import type { VerificationResult } from './results.js'; | ||
import type { Message } from './dns/Message.js'; | ||
import type { DnskeyRecord } from './dnssecRecords.js'; | ||
import { DsData } from './records/DsData.js'; | ||
import type { VerificationResult } from './securityStatusResults.js'; | ||
import type { Message } from './utils/dns/Message.js'; | ||
import type { DnskeyRecord } from './records/dnssecRecords.js'; | ||
import { SignedRrSet } from './SignedRrSet.js'; | ||
@@ -6,0 +6,0 @@ import type { DatePeriod } from './DatePeriod.js'; |
@@ -1,9 +0,9 @@ | ||
import { DsData } from './rdata/DsData.js'; | ||
import { DnskeyData } from './rdata/DnskeyData.js'; | ||
import { DsData } from './records/DsData.js'; | ||
import { DnskeyData } from './records/DnskeyData.js'; | ||
import { SecurityStatus } from './SecurityStatus.js'; | ||
import { DnssecRecordType } from './DnssecRecordType.js'; | ||
import { DnssecRecordType } from './records/DnssecRecordType.js'; | ||
import { SignedRrSet } from './SignedRrSet.js'; | ||
import { DnsClass } from './dns/ianaClasses.js'; | ||
import { Question } from './dns/Question.js'; | ||
import { RCODE_IDS } from './dns/ianaRcodes.js'; | ||
import { DnsClass } from './utils/dns/ianaClasses.js'; | ||
import { Question } from './utils/dns/Question.js'; | ||
import { RCODE_IDS } from './utils/dns/ianaRcodes.js'; | ||
/** | ||
@@ -10,0 +10,0 @@ * A secure zone (in DNSSEC terms). |
{ | ||
"name": "@relaycorp/dnssec", | ||
"version": "1.9.1", | ||
"version": "1.10.0", | ||
"author": { | ||
@@ -42,9 +42,9 @@ "email": "no-reply@relaycorp.tech", | ||
"@jest/globals": "^29.3.1", | ||
"@relaycorp/eslint-config": "^1.1.55", | ||
"@relaycorp/eslint-config": "^1.1.56", | ||
"@relaycorp/shared-config": "^1.9.3", | ||
"@types/jest": "^29.2.5", | ||
"@typescript-eslint/parser": "^5.48.0", | ||
"@typescript-eslint/parser": "^5.48.1", | ||
"del-cli": "^5.0.0", | ||
"dohdec": "https://gitpkg.now.sh/hildjj/dohdec/pkg/dohdec?acd49694a83825a461bdff55e4a4a63ca7a4bbef", | ||
"eslint": "^8.31.0", | ||
"eslint": "^8.32.0", | ||
"jest": "^29.3.1", | ||
@@ -55,3 +55,3 @@ "jest-date-mock": "^1.0.8", | ||
"prettier": "^2.8.2", | ||
"ts-jest": "^29.0.3", | ||
"ts-jest": "^29.0.5", | ||
"ts-node": "^10.9.1", | ||
@@ -58,0 +58,0 @@ "typedoc": "^0.23.24", |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
167473
160
2295
1