Beispiel #1
0
 /// <summary>
 /// Set the passport holder's nationality.
 /// </summary>
 /// <param name="nationality">New nationality.</param>
 public void setNationality(Country nationality)
 {
     this.nationality = nationality;
     checkDigit();
 }
Beispiel #2
0
 /// <summary>
 /// Constructs a new MRZ.
 /// </summary>
 /// <param name="stream">contains the contents of DG1 (without the tag and length)</param>
 public MRZInfo(Stream stream)
 {
     try {
     BinaryReader dataIn = new BinaryReader(stream);
     this.documentType = readDocumentType(dataIn);
     if (documentType == DOC_TYPE_ID1) {
         this.issuingState = readIssuingState(dataIn);
         this.documentNumber = readDocumentNumber(dataIn, 9);
         this.documentNumberCheckDigit = (char)dataIn.ReadByte();
         this.personalNumber = trimFillerChars(readPersonalNumber(dataIn, 14)); // (FIXED by [email protected]) not 15 but 14 let control digit out of this read
         dataIn.ReadByte(); // MO: always '<'?
         this.personalNumberCheckDigit = checkDigit(personalNumber); // (Also: [email protected] sugests to: read control digite of sofinumber instead.)
         this.dateOfBirth = readDateOfBirth(dataIn);
         this.dateOfBirthCheckDigit = (char)dataIn.ReadByte();
         this.gender = readGender(dataIn);
         this.dateOfExpiry = readDateOfExpiry(dataIn);
         this.dateOfExpiryCheckDigit = (char)dataIn.ReadByte();
         this.nationality = readNationality(dataIn);
         byte[] optionalData2Bytes = new byte[11];
         dataIn.Read(optionalData2Bytes, 0, optionalData2Bytes.Length);
         this.optionalData2 = UTF8Encoding.UTF8.GetString(optionalData2Bytes);
         this.compositeCheckDigit = (char)dataIn.ReadByte();
         string name = readName(dataIn, 30);
         processNameIdentifiers(name);
     } else {
         /* Assume it's a ID3 document */
         this.issuingState = readIssuingState(dataIn);
         string name = readName(dataIn, 39);
         processNameIdentifiers(name);
         this.documentNumber = readDocumentNumber(dataIn, 9);
         this.documentNumberCheckDigit = (char)dataIn.ReadByte();
         this.nationality = readNationality(dataIn);
         this.dateOfBirth = readDateOfBirth(dataIn);
         this.dateOfBirthCheckDigit = (char)dataIn.ReadByte();
         this.gender = readGender(dataIn);
         this.dateOfExpiry = readDateOfExpiry(dataIn);
         this.dateOfExpiryCheckDigit = (char)dataIn.ReadByte();
         this.personalNumber = trimFillerChars(readPersonalNumber(dataIn, 14));
         this.personalNumberCheckDigit = (char)dataIn.ReadByte();
         this.compositeCheckDigit = (char)dataIn.ReadByte();
     }
     } catch (IOException ioe) {
     Console.WriteLine(ioe.StackTrace);
     throw new ArgumentException("Invalid MRZ input source");
     }
 }
Beispiel #3
0
 /// <summary>
 /// Set the issuing state.
 /// </summary>
 /// <param name="issuingState">New issuing state.</param>
 public void setIssuingState(Country issuingState)
 {
     this.issuingState = issuingState;
     checkDigit();
 }
Beispiel #4
0
 /// <summary>
 /// Constructs a new MRZ.
 /// </summary>
 /// <param name="documentType">document type</param>
 /// <param name="issuingState">issuing state</param>
 /// <param name="primaryIdentifier">card holder name</param>
 /// <param name="secondaryIdentifiers">card holder name</param>
 /// <param name="documentNumber">document number</param>
 /// <param name="nationality">nationality</param>
 /// <param name="dateOfBirth">date of birth</param>
 /// <param name="gender">gender</param>
 /// <param name="dateOfExpiry">date of expiry</param>
 /// <param name="personalNumber">personal number</param>
 public MRZInfo(int documentType, Country issuingState,
     string primaryIdentifier, string[] secondaryIdentifiers,
     string documentNumber, Country nationality, DateTime dateOfBirth,
     Gender gender, DateTime dateOfExpiry, string personalNumber)
 {
     this.documentType = documentType;
     this.issuingState = issuingState;
     this.primaryIdentifier = primaryIdentifier;
     this.secondaryIdentifiers = secondaryIdentifiers;
     this.documentNumber = documentNumber;
     this.nationality = nationality;
     this.dateOfBirth = dateOfBirth;
     this.gender = gender;
     this.dateOfExpiry = dateOfExpiry;
     this.personalNumber = personalNumber;
     if (documentType == DOC_TYPE_ID1) {
     this.optionalData2 = "<<<<<<<<<<<";
     }
     checkDigit();
 }