Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 27 additions & 27 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -114,19 +114,19 @@ coverage-check: coverage-setup
@COVERAGE=$$(grep "TOTAL" coverage_summary.txt | grep -oE '[0-9]+\.[0-9]+%' | tail -1 | sed 's/%//'); \
THRESHOLD=90.0; \
if [ -z "$$COVERAGE" ]; then \
echo " Could not extract total coverage percentage"; \
echo "ERROR: Could not extract total coverage percentage"; \
cat coverage_summary.txt; \
rm -f coverage_summary.txt; \
exit 1; \
fi; \
echo "Current coverage: $${COVERAGE}%"; \
echo "Minimum threshold: $${THRESHOLD}%"; \
if [ $$(echo "$${COVERAGE} < $${THRESHOLD}" | bc -l) -eq 1 ]; then \
echo " Coverage $${COVERAGE}% is below threshold $${THRESHOLD}%"; \
echo "FAIL: Coverage $${COVERAGE}% is below threshold $${THRESHOLD}%"; \
rm -f coverage_summary.txt; \
exit 1; \
else \
echo " Coverage $${COVERAGE}% meets threshold $${THRESHOLD}%"; \
echo "PASS: Coverage $${COVERAGE}% meets threshold $${THRESHOLD}%"; \
rm -f coverage_summary.txt; \
fi

Expand All @@ -145,60 +145,60 @@ docs:

# Developer setup - install Rust and set up development environment
developer:
@echo "🚀 Setting up development environment..."
@echo "Setting up development environment..."
@if command -v rustc > /dev/null 2>&1; then \
echo "Rust is already installed (version: $$(rustc --version))"; \
echo "Rust is already installed (version: $$(rustc --version))"; \
else \
echo "📦 Installing Rust via rustup (automated)..."; \
echo "Installing Rust via rustup (automated)..."; \
if [ -f scripts/rustup-init.sh ]; then \
chmod +x scripts/rustup-init.sh; \
./scripts/rustup-init.sh -y --default-toolchain stable; \
echo "🔄 Rust installed! Sourcing environment..."; \
echo "Rust installed! Sourcing environment..."; \
. "$$HOME/.cargo/env" 2>/dev/null || true; \
else \
echo " scripts/rustup-init.sh not found in project root."; \
echo " Please download it from: https://sh.rustup.rs/"; \
echo "ERROR: scripts/rustup-init.sh not found in project root."; \
echo " Please download it from: https://sh.rustup.rs/"; \
exit 1; \
fi; \
fi
@echo "🔧 Setting up development tools..."
@echo "Setting up development tools..."
@if command -v rustc > /dev/null 2>&1; then \
echo "📋 Rust version: $$(rustc --version)"; \
echo "📋 Cargo version: $$(cargo --version)"; \
echo "🧪 Installing development tools..."; \
echo "Rust version: $$(rustc --version)"; \
echo "Cargo version: $$(cargo --version)"; \
echo "Installing development tools..."; \
$(MAKE) coverage-setup; \
cargo install cargo-audit --quiet || echo "⚠️ cargo-audit installation failed or already installed"; \
echo "🔧 Installing script dependencies..."; \
cargo install cargo-audit --quiet || echo "WARNING: cargo-audit installation failed or already installed"; \
echo "Installing script dependencies..."; \
if ! command -v jq > /dev/null 2>&1; then \
echo "📦 Installing jq..."; \
echo "Installing jq..."; \
if command -v brew > /dev/null 2>&1; then \
brew install jq; \
else \
echo "⚠️ Please install jq manually: https://stedolan.github.io/jq/download/"; \
echo "WARNING: Please install jq manually: https://stedolan.github.io/jq/download/"; \
fi; \
else \
echo "jq is already installed"; \
echo "jq is already installed"; \
fi; \
if ! command -v curl > /dev/null 2>&1; then \
echo "📦 Installing curl..."; \
echo "Installing curl..."; \
if command -v brew > /dev/null 2>&1; then \
brew install curl; \
else \
echo "⚠️ Please install curl manually"; \
echo "WARNING: Please install curl manually"; \
fi; \
else \
echo "curl is already installed"; \
echo "curl is already installed"; \
fi; \
echo "🏗️ Running initial build and test..."; \
echo "Running initial build and test..."; \
$(MAKE) check; \
$(MAKE) test; \
echo ""; \
echo "Development environment setup complete!"; \
echo "Development environment setup complete!"; \
else \
echo "⚠️ Rust installation completed but not available in current shell."; \
echo "🔄 Please restart your shell or run:"; \
echo " source $$HOME/.cargo/env"; \
echo " make developer"; \
echo "WARNING: Rust installation completed but not available in current shell."; \
echo "Please restart your shell or run:"; \
echo " source $$HOME/.cargo/env"; \
echo " make developer"; \
fi
$(MAKE) help

Expand Down
60 changes: 54 additions & 6 deletions keetanetwork-asn1/asn1/iso20022.asn
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,17 @@ Iso20022 DEFINITIONS AUTOMATIC TAGS ::= BEGIN
Department ::= UTF8String --1.3.6.1.4.1.62675.1.2.9
EmailAddressPurpose ::= UTF8String --1.3.6.1.4.1.62675.1.3.0
FullName ::= UTF8String --1.3.6.1.4.1.62675.1.0
FirstName ::= UTF8String --1.3.6.1.4.1.62675.1.0.1
LastName ::= UTF8String --1.3.6.1.4.1.62675.1.0.2
MiddleName ::= UTF8String --1.3.6.1.4.1.62675.1.0.3
BirthDate ::= GeneralizedTime --1.3.6.1.4.1.62675.1.1
EmailAddress ::= UTF8String --1.3.6.1.4.1.62675.1.3
PhoneNumber ::= UTF8String --1.3.6.1.4.1.62675.1.4
JobTitle ::= UTF8String --1.3.6.1.4.1.62675.1.6
JobResponsibility ::= UTF8String --1.3.6.1.4.1.62675.1.6.1
Id ::= UTF8String --1.3.6.1.4.1.62675.1.7
Issuer ::= UTF8String --1.3.6.1.4.1.62675.1.7.1
Nationality ::= UTF8String --1.3.6.1.4.1.62675.1.10

AddressType ::= CHOICE { -- 1.3.6.1.4.1.62675.1.2.10
code [0] EXPLICIT UTF8String,
Expand All @@ -31,7 +35,23 @@ Iso20022 DEFINITIONS AUTOMATIC TAGS ::= BEGIN

PersonIdentificationSchemeNameChoice ::= CHOICE { -- 1.3.6.1.4.1.62675.1.8.1.1
code [0] EXPLICIT UTF8String,
proprietary [1] EXPLICIT UTF8String
proprietary [1] EXPLICIT PersonIdentificationSchemeNameProprietary
}

DigestInfo ::= SEQUENCE {
digestAlgorithm [0] EXPLICIT OBJECT IDENTIFIER,
digest [1] EXPLICIT OCTET STRING
}

ExternalReference ::= SEQUENCE {
url [0] EXPLICIT UTF8String,
contentType [1] EXPLICIT UTF8String
}

Reference ::= SEQUENCE {
external [0] EXPLICIT ExternalReference,
digest [1] EXPLICIT DigestInfo,
encryptionAlgorithm [2] EXPLICIT OBJECT IDENTIFIER
}

Address ::= SEQUENCE { --1.3.6.1.4.1.62675.1.2
Expand All @@ -54,6 +74,11 @@ Iso20022 DEFINITIONS AUTOMATIC TAGS ::= BEGIN
provinceOfBirth [3] EXPLICIT CountrySubDivision OPTIONAL
}

EntityType ::= SEQUENCE { --1.3.6.1.4.1.62675.1.8
organization [0] EXPLICIT SEQUENCE OF GenericOrganizationIdentification OPTIONAL,
person [1] EXPLICIT SEQUENCE OF GenericPersonIdentification OPTIONAL
}

ContactDetails ::= SEQUENCE { --1.3.6.1.4.1.62675.1.9
department [0] EXPLICIT Department OPTIONAL,
emailAddress [1] EXPLICIT EmailAddress OPTIONAL,
Expand All @@ -69,6 +94,30 @@ Iso20022 DEFINITIONS AUTOMATIC TAGS ::= BEGIN
preferredMethod [11] EXPLICIT PreferredContactMethodCode OPTIONAL
}

Document ::= SEQUENCE { --1.3.6.1.4.1.62675.1.11
documentNumber [0] EXPLICIT UTF8String,
front [1] EXPLICIT Reference OPTIONAL,
back [2] EXPLICIT Reference OPTIONAL,
selfie [3] EXPLICIT Reference OPTIONAL,
fullName [4] EXPLICIT UTF8String OPTIONAL,
firstName [5] EXPLICIT UTF8String OPTIONAL,
lastName [6] EXPLICIT UTF8String OPTIONAL,
dob [7] EXPLICIT GeneralizedTime OPTIONAL,
gender [8] EXPLICIT UTF8String OPTIONAL,
address [9] EXPLICIT Address OPTIONAL,
expiresAt [10] EXPLICIT GeneralizedTime OPTIONAL,
issuedAt [11] EXPLICIT GeneralizedTime OPTIONAL,
issuingState [12] EXPLICIT UTF8String OPTIONAL,
issuingCountry [13] EXPLICIT UTF8String OPTIONAL,
refNumber [14] EXPLICIT UTF8String OPTIONAL,
nationality [15] EXPLICIT UTF8String OPTIONAL,
curp [16] EXPLICIT UTF8String OPTIONAL,
claveDeElector [17] EXPLICIT UTF8String OPTIONAL,
classifiedDocumentType [18] EXPLICIT UTF8String OPTIONAL,
curpValidationResponse [19] EXPLICIT UTF8String OPTIONAL,
sambaActivityHistoryResponse [20] EXPLICIT UTF8String OPTIONAL
}

OrganizationIdentification ::= SEQUENCE { --1.3.6.1.4.1.62675.1.8.0
bic [0] EXPLICIT UTF8String OPTIONAL,
lei [1] EXPLICIT UTF8String OPTIONAL,
Expand Down Expand Up @@ -97,15 +146,14 @@ Iso20022 DEFINITIONS AUTOMATIC TAGS ::= BEGIN
id [1] EXPLICIT Id OPTIONAL
}

EntityType ::= CHOICE { --1.3.6.1.4.1.62675.1.8
organization [0] EXPLICIT OrganizationIdentification,
person [1] EXPLICIT PersonIdentification
}

NamePrefixCode ::= ENUMERATED { --1.3.6.1.4.1.62675.1.0.0
DOCT, MIST, MISS, MIKS, MME
}

PersonIdentificationSchemeNameProprietary ::= ENUMERATED { --1.3.6.1.4.1.62675.1.8.1.1.0
DRLC, CPPT, ARNU, SSN, TXID, VISA, WPPT
}

PreferredContactMethodCode ::= ENUMERATED { --1.3.6.1.4.1.62675.1.9.0
LETT, MAIL, PHON, FAXX, CELL
}
Expand Down
Loading
Loading