npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

react-native-nfc-passport-info

v1.0.3

Published

Read data from NFC passport

Downloads

13

Readme

react-native-nfc-passport-info

Read data from NFC passport, Vietnam CCCD for iOS and Android, reference from NFCPassportReader and jmrtd

Installation

npm install react-native-nfc-passport-info
yarn add react-native-nfc-passport-info

Configuration

IOS

  1. In apple developer site, enable capability for NFC

enable capability

  1. in Xcode, add NFCReaderUsageDescription into your info.plist, for example:
<key>NFCReaderUsageDescription</key>
<string>We need to use NFC</string>

More info on Apple's doc

Additionally, if writing ISO7816 tags add application identifiers (aid) into your info.plist as needed like this.

<key>com.apple.developer.nfc.readersession.iso7816.select-identifiers</key>
<array>
  <string>A000000151000000</string>
  <string>D2760000850100</string>
  <string>D2760000850101</string>
</array>
  1. in Xcode's Signing & Capabilities tab, make sure Near Field Communication Tag Reading capability had been added, like this:

xcode-add-capability

If this is the first time you toggle the capabilities, the Xcode will generate a <your-project>.entitlement file for you:

xcode-add-entitlement

  1. in Xcode, review the generated entitlement. It should look like this:

edit entitlement

More info on Apple's doc

  1. PassiveAuthentication Add file masterList.pem to Project

Passive Authentication is now part of the main library and can be used to ensure that an E-Passport is valid and hasn't been tampered with.

It requires a set of CSCA certificates in PEM format from a master list (either from a country that publishes their master list, or the ICAO PKD repository). See the scripts folder for details on how to get and create this file.

The masterList.pem file included in the Sample app is purely there to ensure no compiler warnings and contains only a single PEM file that was self-generated and won't be able to verify anything!

Android

Simple add uses-permission into your AndroidManifest.xml:

 <uses-permission android:name="android.permission.NFC" />

Usage

import { scanNfc } from 'react-native-nfc-passport-info';

// documentNumber: Last 9 digits of cccd
// dateOfBirth: yymmdd
// dateOfExpiry: yymmdd

const onReadNfc = async () => {
  try {
    const data = await scanNfc({
      documentNumber: 'xxxxxxxxx',
      dateOfBirth: 'xxxxxx',
      dateOfExpiry: 'xxxxxx',
    });
    console.log('onReadNfc', data);
  } catch (error) {
    console.log(err);
  }
};

Sample app

There is a sample app included in the repo which demonstrates the functionality.

License

MIT