Browse Source

update for keychain

pull/8/head
Tim Glasgow 2 years ago
parent
commit
df9f07a1fd
  1. 21
      squarenotsquare/__mock__/mockKeyStore.js
  2. 2
      squarenotsquare/jest.config.js
  3. 6
      squarenotsquare/src/realm/DbInit.js
  4. 4
      squarenotsquare/src/services/Keystore.js

21
squarenotsquare/__mock__/mockKeyStore.js

@ -1,33 +1,30 @@
class MockKeyStore {
async remove(key) { export async function resetInternetCredentials(key) {
if (key === 'notakey') { if (key === 'notakey') {
throw ('Key not found'); throw ('Key not found');
} }
return true; return true;
} }
async set(key, value) { export async function setInternetCredentials(key, value, placeholder) {
if (key === 'savefailed'){ if (key === 'savefailed'){
throw ('Failed to save key'); throw ('Failed to save key');
} }
return true; return true;
} }
async get(key) { export async function getInternetCredentials(key) {
if (key === 'isNull'){ if (key === 'isNull'){
return null; return false;
} else if (key === 'negTest') { } else if (key === 'negTest') {
return '-1'; return {username: '-1'};
} else if (key === 'notakey') { } else if (key === 'notakey') {
throw ('Key not found'); throw ('Key not found');
} else { } else {
return '1234567890'; return {username: '1234567890'};
}
} }
} }
export default RNSecureKeyStore = new MockKeyStore();
export const ACCESSIBLE = { export const ACCESSIBLE = {
AFTER_FIRST_UNLOCK :'AccessibleAfterFirstUnlock', AFTER_FIRST_UNLOCK :'AccessibleAfterFirstUnlock',
AFTER_FIRST_UNLOCK_THIS_DEVICE_ONLY :'AccessibleAfterFirstUnlockThisDeviceOnly', AFTER_FIRST_UNLOCK_THIS_DEVICE_ONLY :'AccessibleAfterFirstUnlockThisDeviceOnly',

2
squarenotsquare/jest.config.js

@ -6,7 +6,7 @@ module.exports = {
moduleDirectories: ['node_modules', 'src'], moduleDirectories: ['node_modules', 'src'],
moduleNameMapper: { moduleNameMapper: {
// '@react-native-firebase/messaging: '<rootDir>/__mock__/mockFirebase.js', // '@react-native-firebase/messaging: '<rootDir>/__mock__/mockFirebase.js',
'react-native-secure-key-store': '<rootDir>/__mock__/mockKeyStore.js', 'react-native-keychain': '<rootDir>/__mock__/mockKeyStore.js',
'\\.(jpg|ico|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$': '<rootDir>/__mock__/file.js', '\\.(jpg|ico|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$': '<rootDir>/__mock__/file.js',
'^(realm)': '<rootDir>/__mock__/mockRealmObject' '^(realm)': '<rootDir>/__mock__/mockRealmObject'
}, },

6
squarenotsquare/src/realm/DbInit.js

@ -22,14 +22,14 @@ export async function initDB(dbKeyRef = 'squareDB', dbLocation = Realm.defaultPa
try { try {
let fromStore = await KeyStore.getKey(dbKeyRef); let fromStore = await KeyStore.getKey(dbKeyRef);
if (fromStore === null) { if (fromStore === false) {
let newKey = generateKey(); let newKey = generateKey();
await KeyStore.setKey(dbKeyRef, newKey); await KeyStore.setKey(dbKeyRef, newKey);
fromStore = await KeyStore.getKey(dbKeyRef); fromStore = newKey;
} }
let dbKey = new Uint8Array(64); let dbKey = new Uint8Array(64);
if (fromStore !== null){ if (fromStore !== false){
for (let i = 0; i < 64; ++i){ for (let i = 0; i < 64; ++i){
dbKey[i] = fromStore.charAt(i); dbKey[i] = fromStore.charAt(i);
} }

4
squarenotsquare/src/services/Keystore.js

@ -39,7 +39,11 @@ export async function getKey(key) {
let value = null; let value = null;
await getInternetCredentials(key).then( await getInternetCredentials(key).then(
(res) => { (res) => {
if (res === false) {
value = false;
} else {
value = res.username; value = res.username;
}
}, },
(err) => { (err) => {
value = null; value = null;

Loading…
Cancel
Save