/* * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template */ package testtsl; import org.bouncycastle.asn1.*; /** * * @author TuoiCM */ public class DG13File { private String personalNumber; private String name; private String dateOfBirth; private String gender; private String nationality; private String ethnic; private String religion; private String placeOfOrigin; private String placeOfResident; private String personalIdentification; private String issuanceDate; private String expiryDate; private String firstParentName = ""; private String secondParentName = ""; private String nameOfSpouse; private String oldPersonalNumber; public String getParentNames() { StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append(firstParentName); if (!secondParentName.isEmpty()) { stringBuilder.append(", "); stringBuilder.append(secondParentName); } return stringBuilder.toString(); } public DG13File(byte[] dg13) throws Exception { try (ASN1InputStream bIn = new ASN1InputStream(dg13)) { ASN1Primitive obj = bIn.readObject(); DLApplicationSpecific dlAppSpecific = (DLApplicationSpecific) obj; DLSequence dlSequence = (DLSequence) dlAppSpecific.getObject(); DLSet dlSet = (DLSet) dlSequence.getObjectAt(dlSequence.size() - 1); for (ASN1Encodable asn1Encodable : dlSet) { DLSequence sequence = (DLSequence) asn1Encodable; setData(sequence); } } } private final int TAG_PERSONAL_NUMBER = 1; private final int TAG_NAME = 2; private final int TAG_DATE_OF_BIRTH = 3; private final int TAG_GENDER = 4; private final int TAG_NATIONALITY = 5; private final int TAG_ETHNIC = 6; private final int TAG_RELIGION = 7; private final int TAG_PLACE_OF_ORIGIN = 8; private final int TAG_PLACE_OF_RESIDENT = 9; private final int TAG_PERSONAL_IDENTIFICATION = 10; private final int TAG_ISSUANCE_DATE = 11; private final int TAG_EXPIRY_DATE = 12; private final int TAG_NAME_OF_PARENTS = 13; private final int TAG_NAME_OF_SPOUSE = 14; private final int TAG_OLD_PERSONAL_NUMBER = 15; private void setData(DLSequence sequence) { if (sequence == null || sequence.size() < 2) { return; } int size = sequence.size(); int tag = Integer.parseInt(sequence.getObjectAt(0).toString()); switch (tag) { case TAG_PERSONAL_NUMBER: setPersonalNumber(sequence.getObjectAt(1).toString()); break; case TAG_NAME: setName(sequence.getObjectAt(1).toString()); break; case TAG_DATE_OF_BIRTH: setDateOfBirth(sequence.getObjectAt(1).toString()); break; case TAG_GENDER: setGender(sequence.getObjectAt(1).toString()); break; case TAG_NATIONALITY: setNationality(sequence.getObjectAt(1).toString()); break; case TAG_ETHNIC: setEthnic(sequence.getObjectAt(1).toString()); break; case TAG_PLACE_OF_ORIGIN: setPlaceOfOrigin(sequence.getObjectAt(1).toString()); break; case TAG_PLACE_OF_RESIDENT: setPlaceOfResident(sequence.getObjectAt(1).toString()); break; case TAG_PERSONAL_IDENTIFICATION: setPersonalIdentification(sequence.getObjectAt(1).toString()); break; case TAG_ISSUANCE_DATE: setIssuanceDate(sequence.getObjectAt(1).toString()); break; case TAG_EXPIRY_DATE: setExpiryDate(sequence.getObjectAt(1).toString()); break; case TAG_RELIGION: setReligion(sequence.getObjectAt(1).toString()); break; case TAG_NAME_OF_PARENTS: setFirstParentName(sequence.getObjectAt(1).toString().replaceAll("\\[|\\]", "")); if (size >= 3) { setSecondParentName(sequence.getObjectAt(2).toString().replaceAll("\\[|\\]", "")); } break; case TAG_NAME_OF_SPOUSE: if (size >= 2) { setNameOfSpouse(sequence.getObjectAt(1).toString()); } break; case TAG_OLD_PERSONAL_NUMBER: if (size >= 2) { setOldPersonalNumber(sequence.getObjectAt(1).toString()); } break; default: break; } } @Override public String toString() { return "minh.dgs.DG13File{" + "documentNumber='" + personalNumber + '\'' + "\n" + ", name='" + name + '\'' + "\n" + ", dateOfBirth='" + dateOfBirth + '\'' + "\n" + ", gender='" + gender + '\'' + "\n" + ", nationality='" + nationality + '\'' + "\n" + ", ethnic='" + ethnic + '\'' + "\n" + ", religion='" + religion + '\'' + "\n" + ", placeOfOrigin='" + placeOfOrigin + '\'' + "\n" + ", address='" + placeOfResident + '\'' + "\n" + ", personalIdentification='" + personalIdentification + '\'' + "\n" + ", issuanceDate='" + issuanceDate + '\'' + "\n" + ", dateOfExpiry='" + expiryDate + '\'' + "\n" + ", firstParentName='" + firstParentName + '\'' + "\n" + ", secondParentName='" + secondParentName + '\'' + "\n" + ", nameOfSpouse='" + nameOfSpouse + '\'' + "\n" + ", oldDocumentNumber='" + oldPersonalNumber + '\'' + "\n" + '}'; } public String getPersonalNumber() { return personalNumber; } public void setPersonalNumber(String personalNumber) { this.personalNumber = personalNumber; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getDateOfBirth() { return dateOfBirth; } public void setDateOfBirth(String dateOfBirth) { this.dateOfBirth = dateOfBirth; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } public String getNationality() { return nationality; } public void setNationality(String nationality) { this.nationality = nationality; } public String getEthnic() { return ethnic; } public void setEthnic(String ethnic) { this.ethnic = ethnic; } public String getReligion() { return religion; } public void setReligion(String religion) { this.religion = religion; } public String getPlaceOfOrigin() { return placeOfOrigin; } public void setPlaceOfOrigin(String placeOfOrigin) { this.placeOfOrigin = placeOfOrigin; } public String getPlaceOfResident() { return placeOfResident; } public void setPlaceOfResident(String placeOfResident) { this.placeOfResident = placeOfResident; } public String getPersonalIdentification() { return personalIdentification; } public void setPersonalIdentification(String personalIdentification) { this.personalIdentification = personalIdentification; } public String getIssuanceDate() { return issuanceDate; } public void setIssuanceDate(String issuanceDate) { this.issuanceDate = issuanceDate; } public String getExpiryDate() { return expiryDate; } public void setExpiryDate(String expiryDate) { this.expiryDate = expiryDate; } public String getFirstParentName() { return firstParentName; } public void setFirstParentName(String firstParentName) { this.firstParentName = firstParentName; } public String getSecondParentName() { return secondParentName; } public void setSecondParentName(String secondParentName) { this.secondParentName = secondParentName; } public String getNameOfSpouse() { return nameOfSpouse; } public void setNameOfSpouse(String nameOfSpouse) { this.nameOfSpouse = nameOfSpouse; } public String getOldPersonalNumber() { return oldPersonalNumber; } public void setOldPersonalNumber(String oldPersonalNumber) { this.oldPersonalNumber = oldPersonalNumber; } }