Browse Source

update for keychain

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

43
squarenotsquare/__mock__/mockKeyStore.js

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

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);
} }

6
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) => {
value = res.username; if (res === false) {
value = false;
} else {
value = res.username;
}
}, },
(err) => { (err) => {
value = null; value = null;

Loading…
Cancel
Save