((_, forwardedRef) => {
21 | const focusRef = useForwardedRef(forwardedRef);
22 | return (
23 | <>
24 |
25 |
26 | Connect to app store for update
27 | There is a new version of Open Verify available in the app store.
28 |
29 | Your device needs to connect to the app store to update the application.
30 |
31 |
32 | This app will no longer scan QR codes until it has been updated.
33 |
34 | >
35 | );
36 | });
37 | export default BodyEn;
38 |
--------------------------------------------------------------------------------
/src/containers/home/DateTamper/body.en.tsx:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2021 Queen’s Printer for Ontario
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 | import React from 'react';
17 | import {CloseImage, TitleText, P} from 'containers/home/styles';
18 | import useForwardedRef from 'utils/useForwardedRef';
19 |
20 | const BodyEn = React.forwardRef((_, forwardedRef) => {
21 | const focusRef = useForwardedRef(forwardedRef);
22 | return (
23 | <>
24 |
25 |
26 | Update device date and time settings
27 |
28 | This app uses the device's date and time settings to work offline and
29 | keep technical requirements up-to date.
30 |
31 |
32 | Changing the date and time settings on this device may stop the app from
33 | working.
34 |
35 | >
36 | );
37 | });
38 | export default BodyEn;
39 |
--------------------------------------------------------------------------------
/src/containers/home/DateTamper/body.fr.tsx:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2021 Queen’s Printer for Ontario
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 | import React from 'react';
17 | import {CloseImage, TitleText, P} from 'containers/home/styles';
18 | import useForwardedRef from 'utils/useForwardedRef';
19 |
20 | const BodyFr = React.forwardRef((_, forwardedRef) => {
21 | const focusRef = useForwardedRef(forwardedRef);
22 | return (
23 | <>
24 |
25 |
26 |
27 | Mettre à jour les paramètres de date et d’heure de l’appareil
28 |
29 |
30 | Cette application utilise les paramètres de date et d’heure de
31 | l’appareil pour fonctionner hors ligne et maintenir à jour les exigences
32 | techniques.
33 |
34 |
35 | La modification des paramètres de date et d’heure de cet appareil peut
36 | empêcher le bon fonctionnement de l’application.
37 |
38 | >
39 | );
40 | });
41 | export default BodyFr;
42 |
--------------------------------------------------------------------------------
/src/containers/home/index.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2021 Queen’s Printer for Ontario
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 | export {default as HomeScreen} from './HomeScreen';
17 | export {default as Scanner} from './Scanner';
18 | export {default as Update} from './Update';
19 | export {default as AppUpdate} from './AppUpdate';
20 | export {default as DateTamper} from './DateTamper';
21 | export {default as TermsUpdate} from './TermsUpdate';
22 |
--------------------------------------------------------------------------------
/src/containers/onboarding/AppNotMandatory/body.en.tsx:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2021 Queen’s Printer for Ontario
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 | import React from 'react';
17 | import {TitleText, SubtitleText} from 'containers/onboarding/styles';
18 | import useForwardedRef from 'utils/useForwardedRef';
19 |
20 | const BodyEn = React.forwardRef((_, forwardedRef) => {
21 | const focusRef = useForwardedRef(forwardedRef);
22 |
23 | return (
24 | <>
25 |
26 | Proof of vaccination is not mandatory
27 |
28 |
29 | The Open Verify app will no longer be available as of June 24, 2022. The
30 | app will not scan QR codes and will not receive updates or support after
31 | this date.
32 |
33 | >
34 | );
35 | });
36 |
37 | export default BodyEn;
38 |
--------------------------------------------------------------------------------
/src/containers/onboarding/AppNotMandatory/body.fr.tsx:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2021 Queen’s Printer for Ontario
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 | import React from 'react';
17 | import {TitleText, SubtitleText} from 'containers/onboarding/styles';
18 | import useForwardedRef from 'utils/useForwardedRef';
19 |
20 | const BodyFr = React.forwardRef((_, forwardedRef) => {
21 | const focusRef = useForwardedRef(forwardedRef);
22 |
23 | return (
24 | <>
25 |
26 | La preuve de vaccination n’est pas obligatoire.
27 |
28 |
29 | L’application VérifOuverte ne sera plus offerte à partir du 24 juin
30 | 2022. L'application ne scannera pas les codes QR et ne sera plus mise à
31 | jour ni prise en charge après cette date.
32 |
33 | >
34 | );
35 | });
36 |
37 | export default BodyFr;
38 |
--------------------------------------------------------------------------------
/src/containers/onboarding/AppNotMandatory/styles.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2021 Queen’s Printer for Ontario
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 | import styled from 'styled-components/native';
17 |
18 | export const WarningImage = styled.Image.attrs(() => ({
19 | source: require('assets/images/openverify-icon-alert-warning.svg'),
20 | }))`
21 | margin-top: ${({theme}) => theme.variables.spacing.lg}px;
22 | `;
23 |
24 | export const B = styled.Text`
25 | font-family: ${({theme}) => theme.typography.fonts.openSansBold};
26 | font-size: ${({theme}) => theme.typography.fontSizes.body}px;
27 | margin-bottom: ${({theme}) => theme.variables.spacing.lg}px;
28 | color: ${({theme}) => theme.colors.text};
29 | `;
30 |
--------------------------------------------------------------------------------
/src/containers/onboarding/AppNotSupported/body.en.tsx:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2021 Queen’s Printer for Ontario
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 | import React from 'react';
17 | import {TitleText, SubtitleText} from 'containers/onboarding/styles';
18 | import useForwardedRef from 'utils/useForwardedRef';
19 |
20 | const BodyEn = React.forwardRef((_, forwardedRef) => {
21 | const focusRef = useForwardedRef(forwardedRef);
22 |
23 | return (
24 | <>
25 | Open Verify is no longer available
26 |
27 | The app will not scan QR codes and will not receive any more updates or
28 | support.
29 |
30 | >
31 | );
32 | });
33 |
34 | export default BodyEn;
35 |
--------------------------------------------------------------------------------
/src/containers/onboarding/AppNotSupported/body.fr.tsx:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2021 Queen’s Printer for Ontario
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 | import React from 'react';
17 | import {TitleText, SubtitleText} from 'containers/onboarding/styles';
18 | import useForwardedRef from 'utils/useForwardedRef';
19 |
20 | const BodyFr = React.forwardRef((_, forwardedRef) => {
21 | const focusRef = useForwardedRef(forwardedRef);
22 |
23 | return (
24 | <>
25 | VérifOuverte n'est plus offert
26 |
27 | L'application ne scannera pas les codes QR et ne sera plus mise à jour
28 | ni prise en charge.
29 |
30 | >
31 | );
32 | });
33 |
34 | export default BodyFr;
35 |
--------------------------------------------------------------------------------
/src/containers/onboarding/AppNotSupported/styles.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2021 Queen’s Printer for Ontario
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 | import styled from 'styled-components/native';
17 |
18 | export const ErrorImage = styled.Image.attrs(() => ({
19 | source: require('assets/images/openverify-icon-close.svg'),
20 | }))`
21 | margin-top: ${({theme}) => theme.variables.spacing.lg}px;
22 | `;
23 |
--------------------------------------------------------------------------------
/src/containers/onboarding/AutomaticUpdates/body.en.tsx:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2021 Queen’s Printer for Ontario
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 | import React from 'react';
17 | import {TitleText, SubtitleText} from 'containers/onboarding/styles';
18 | import {Bullet} from 'components/core/bullet';
19 | import useForwardedRef from 'utils/useForwardedRef';
20 |
21 | const BodyEn = React.forwardRef((_, forwardedRef) => {
22 | const focusRef = useForwardedRef(forwardedRef);
23 | return (
24 | <>
25 | Automatic updates
26 |
27 | The app will need to connect to the internet weekly.
28 |
29 | When connected, it will:
30 |
31 | let you know if there is an updated version of the app available
32 |
33 | update technical requirements
34 | >
35 | );
36 | });
37 | export default BodyEn;
38 |
--------------------------------------------------------------------------------
/src/containers/onboarding/AutomaticUpdates/body.fr.tsx:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2021 Queen’s Printer for Ontario
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 | import React from 'react';
17 | import {TitleText, SubtitleText} from 'containers/onboarding/styles';
18 | import {Bullet} from 'components/core/bullet';
19 | import useForwardedRef from 'utils/useForwardedRef';
20 |
21 | const BodyFr = React.forwardRef((_, forwardedRef) => {
22 | const focusRef = useForwardedRef(forwardedRef);
23 | return (
24 | <>
25 | Mises à jour automatiques
26 |
27 | Cette application devra se connecter à l’Internet chaque semaine.
28 |
29 | Une fois connectée, elle{' '}:
30 |
31 | vous indique si une version à jour de l’application est disponible;
32 |
33 | met à jour les exigences techniques.
34 | >
35 | );
36 | });
37 | export default BodyFr;
38 |
--------------------------------------------------------------------------------
/src/containers/onboarding/index.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2021 Queen’s Printer for Ontario
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 | export {default as AppForBusinesses} from './AppForBusinesses';
17 | export {default as WhatAppDoes} from './WhatAppDoes';
18 | export {default as WhatAppDoesNot} from './WhatAppDoesNot';
19 | export {default as Terms} from './Terms';
20 | export {default as CameraPermissions} from './CameraPermissions';
21 | export {default as AutomaticUpdates} from './AutomaticUpdates';
22 | export {default as ReadyToScan} from './ReadyToScan';
23 | export {default as AppNotMandatory} from './AppNotMandatory';
24 | export {default as AppNotSupported} from './AppNotSupported';
25 |
--------------------------------------------------------------------------------
/src/containers/results/index.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2021 Queen’s Printer for Ontario
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 | export {default as InvalidResultScreen} from './InvalidResult';
17 | export {default as UnverifiedResultScreen} from './UnverifiedResult';
18 | export {default as VerifiedResultScreen} from './VerifiedResult';
19 | export {default as ScannerTimedOut} from './ScannerTimedOut';
20 |
--------------------------------------------------------------------------------
/src/containers/settings/index.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2021 Queen’s Printer for Ontario
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 | export {default as SettingsScreen} from './SettingsScreen';
17 | export {default as Language} from './Language';
18 | export {default as UpdatesHelp} from './UpdatesHelp';
19 | export {default as VisualAppearance} from './VisualAppearance';
20 | export {default as HowItWorks} from './HowItWorks';
21 | export {default as WhatResultsMean} from './WhatResultsMean';
22 | export {default as HelpUsImprove} from './HelpUsImprove';
23 |
--------------------------------------------------------------------------------
/src/controllers/OrientationControler.tsx:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2021 Queen’s Printer for Ontario
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 | import {FC, useEffect} from 'react';
17 | import Orientation from 'react-native-orientation-locker';
18 | import DeviceInfo from 'react-native-device-info';
19 |
20 | export interface Props {}
21 |
22 | const OrientationController: FC = ({}) => {
23 | useEffect(() => {
24 | async function checkForTabletMode() {
25 | const isTablet = await DeviceInfo.isTablet();
26 | if (!isTablet) {
27 | // https://github.com/wonday/react-native-orientation-locker/issues/198
28 | setTimeout(() => Orientation.lockToPortrait(), 10);
29 | } else {
30 | setTimeout(() => Orientation.unlockAllOrientations(), 10);
31 | }
32 | }
33 | checkForTabletMode();
34 | }, []);
35 |
36 | return null;
37 | };
38 |
39 | export default OrientationController;
40 |
--------------------------------------------------------------------------------
/src/declarations.d.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2021 Queen’s Printer for Ontario
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 | declare module '*.html' {
17 | const content: string;
18 | export default content;
19 | }
20 |
--------------------------------------------------------------------------------
/src/jest/Jest.utils.tsx:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2021 Queen’s Printer for Ontario
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 | import React, {ReactElement} from 'react';
17 | import {render, RenderOptions} from '@testing-library/react-native';
18 | import {ThemeProvider} from 'styled-components/native';
19 | import {Theme as DefaultTheme} from '../assets/theme/light';
20 |
21 | interface ProvidersProps {
22 | children: React.ReactNode | undefined;
23 | }
24 |
25 | const Providers = ({children}: ProvidersProps): ReactElement => {
26 | return {children};
27 | };
28 |
29 | const customRender = (ui: ReactElement, options: RenderOptions = {}) => {
30 | return render(ui, {wrapper: Providers, ...options});
31 | };
32 |
33 | export {customRender as render};
34 |
--------------------------------------------------------------------------------
/src/jest/index.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2021 Queen’s Printer for Ontario
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 | export * from './Jest.utils';
17 |
--------------------------------------------------------------------------------
/src/modules/NightMode/index.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2021 Queen’s Printer for Ontario
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 | /**
17 | * This exposes the native NightModeModule module as a JS module. This has
18 | * three functions:
19 | *
20 | * setLight() which enables light theme on iOS or Android
21 | * setDark() which enables dark theme on iOS or Android
22 | * setSystem() which follows system preference
23 | *
24 | */
25 | import {NativeModules} from 'react-native';
26 | import {NightModeModuleInterface} from './types';
27 | const {NightModeModule} = NativeModules;
28 | export default NightModeModule as NightModeModuleInterface;
29 |
--------------------------------------------------------------------------------
/src/modules/NightMode/types.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2021 Queen’s Printer for Ontario
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 | export interface NightModeModuleInterface {
17 | setLight(): void;
18 | setDark(): void;
19 | setSystem(): void;
20 | }
21 |
--------------------------------------------------------------------------------
/src/modules/SecureFlag/index.android.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2021 Queen’s Printer for Ontario
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 | /**
17 | * This exposes the native SecureFlagModule module as a JS module. This has
18 | * two functions, enable() which enables FLAG_SECURE on the current activity
19 | * and disable() which clears the FLAG_SECURE flag.
20 | *
21 | * See FLAG_SECURE documentation at https://developer.android.com/reference/android/view/WindowManager.LayoutParams.html#FLAG_SECURE
22 | */
23 | import {NativeModules} from 'react-native';
24 | import {SecureFlagModuleInterface} from './types';
25 | const {SecureFlagModule} = NativeModules;
26 | export default SecureFlagModule as SecureFlagModuleInterface;
27 |
--------------------------------------------------------------------------------
/src/modules/SecureFlag/index.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2021 Queen’s Printer for Ontario
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 | /**
17 | * This is a no-op fallback for the SecureFlagModule module as a JS module.
18 | * This has two functions, enable() which on Android enables FLAG_SECURE
19 | * on the current activity and disable() which clears the FLAG_SECURE flag.
20 | *
21 | * See FLAG_SECURE documentation at https://developer.android.com/reference/android/view/WindowManager.LayoutParams.html#FLAG_SECURE
22 | */
23 | import {SecureFlagModuleInterface} from './types';
24 | const SecureFlagModule: SecureFlagModuleInterface = {
25 | enable: () => {},
26 | disable: () => {},
27 | };
28 | export default SecureFlagModule;
29 |
--------------------------------------------------------------------------------
/src/modules/SecureFlag/types.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2021 Queen’s Printer for Ontario
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 | export interface SecureFlagModuleInterface {
17 | enable(): void;
18 | disable(): void;
19 | }
20 |
--------------------------------------------------------------------------------
/src/navigation/AppNotSupportedNavigation.tsx:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2021 Queen’s Printer for Ontario
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 | import React from 'react';
17 | import {createStackNavigator, TransitionPresets} from '@react-navigation/stack';
18 |
19 | import * as OnboardingScreens from 'containers/onboarding';
20 | import * as route from 'containers/routes';
21 | import Logo from 'components/logo';
22 |
23 | const Stack = createStackNavigator();
24 |
25 | const AppNotSupportedNavigation = () => {
26 | return (
27 | ,
31 | headerMode: 'float',
32 | ...TransitionPresets.SlideFromRightIOS,
33 | }}>
34 |
38 |
39 | );
40 | };
41 |
42 | export default AppNotSupportedNavigation;
43 |
--------------------------------------------------------------------------------
/src/redux/actions/types/index.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2021 Queen’s Printer for Ontario
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 | export const ONBOARD_USER = 'ONBOARD_USER';
17 | export const SELECT_LANGUAGE = 'SELECT_LANGUAGE';
18 | export const SET_VISUAL_APPEARANCE = 'SET_VISUAL_APPEARANCE';
19 | export const SET_MANUAL_UPDATE = 'SET_MANUAL_UPDATE';
20 | export const SET_APP_UPDATE_SETTING = 'SET_APP_UPDATE_SETTING';
21 |
22 | export const FETCH_RULESET_REQUEST = 'FETCH_RULESET_REQUEST';
23 | export const FETCH_RULESET_SUCCESS = 'FETCH_RULESET_SUCCESS';
24 | export const FETCH_RULESET_FAILURE = 'FETCH_RULESET_FAILURE';
25 |
26 | export const ACCEPT_TERMS = 'ACCEPT_TERMS';
27 |
--------------------------------------------------------------------------------
/src/services/QRCodeValidator/docs/QRCodeValidator-architecture.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ongov/OpenVerify/7fd2bebb1af61456f858bbc1b38917fbf8234553/src/services/QRCodeValidator/docs/QRCodeValidator-architecture.pdf
--------------------------------------------------------------------------------
/src/services/QRCodeValidator/lib/models/Jwks.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2021 Queen’s Printer for Ontario
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 | export interface Jwks {
17 | keys: Key[];
18 | }
19 |
20 | export interface Key {
21 | alg?: string;
22 | crv?: string;
23 | kid: string;
24 | kty: string;
25 | use?: string;
26 | x?: string;
27 | y?: string;
28 | d?: string;
29 | x5c?: string[];
30 | }
31 |
--------------------------------------------------------------------------------
/src/services/QRCodeValidator/lib/models/TrustedIssuersJWKS.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2021 Queen’s Printer for Ontario
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 | import {Jwks} from './Jwks';
17 |
18 | export interface TrustedIssuersJWKS {
19 | [iss: string]: Jwks;
20 | }
21 |
--------------------------------------------------------------------------------
/src/services/RulesetSignatureValidator/trustedKeys.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2021 Queen’s Printer for Ontario
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 | export default [
17 | // Production
18 | {
19 | crv: 'Ed25519',
20 | x: 'J7OsTIwW3170D-S4Nt2IKUPoL3FCaF8qzF6fWUojA4c',
21 | kty: 'OKP',
22 | },
23 | ];
24 |
--------------------------------------------------------------------------------
/src/styled.d.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2021 Queen’s Printer for Ontario
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 | import 'styled-components';
17 | import {ITheme} from 'assets/theme';
18 |
19 | declare module 'styled-components' {
20 | export interface DefaultTheme extends ITheme {}
21 | }
22 |
--------------------------------------------------------------------------------
/src/utils/analytics.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2021 Queen’s Printer for Ontario
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 | import analytics from '@react-native-firebase/analytics';
17 |
18 | export const trackLogEvent = async (event: string, otherParams = {}) => {
19 | try {
20 | await analytics().logEvent(event, {
21 | ...otherParams,
22 | });
23 | return true;
24 | } catch (e: unknown) {
25 | if (e instanceof Error) {
26 | console.log(`Error in the execution of trackLogEvent ${e?.message}`);
27 | }
28 | if (typeof e === 'string') {
29 | console.log(`Error in the execution of trackLogEvent ${e}`);
30 | }
31 | return false;
32 | }
33 | };
34 |
--------------------------------------------------------------------------------
/src/utils/base64-utils.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2021 Queen’s Printer for Ontario
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 | import {atob} from 'abab';
17 | import {decode} from './base64-binary';
18 | import {utils} from 'elliptic';
19 |
20 | export function strToArrayOfBytes(str: string) {
21 | return utils.toArray(str);
22 | }
23 |
24 | export function toHex(arr: ArrayBuffer) {
25 | return utils.toHex(arr).toUpperCase();
26 | }
27 | export function Base64URLtoString(input: string) {
28 | input = input.replace(/-/g, '+');
29 | input = input.replace(/_/g, '/');
30 | return atob(input);
31 | }
32 | export function Base64URLtoBuffer(input: string) {
33 | input = input.replace(/-/g, '+');
34 | input = input.replace(/_/g, '/');
35 | return decode(input);
36 | }
37 |
--------------------------------------------------------------------------------
/src/utils/openURL.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2021 Queen’s Printer for Ontario
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 | import {Linking} from 'react-native';
17 | import InAppBrowser from 'react-native-inappbrowser-reborn';
18 | import {trackLogEvent} from 'utils/analytics';
19 | import {verifyEvent} from 'config/analytics';
20 |
21 | const openURL = async (
22 | url: string,
23 | modal: boolean = true,
24 | linkText: string = '',
25 | ) => {
26 | try {
27 | trackLogEvent(verifyEvent.LINK_CLICK, {
28 | outbound: false,
29 | link_url: url,
30 | link_text: linkText,
31 | });
32 | if (await InAppBrowser.isAvailable()) {
33 | await InAppBrowser.open(url, {
34 | dismissButtonStyle: 'done',
35 | animated: true,
36 | modalPresentationStyle: 'automatic',
37 | modalEnabled: modal,
38 | enableBarCollapsing: true,
39 | });
40 | } else {
41 | Linking.openURL(url);
42 | }
43 | } catch (e) {
44 | console.error(e);
45 | }
46 | };
47 | export default openURL;
48 |
--------------------------------------------------------------------------------
/src/utils/screen.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2021 Queen’s Printer for Ontario
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 | import {Home, Settings} from 'containers/routes';
17 |
18 | export const shouldDisplayBanner = (
19 | currentRouteName: string | undefined,
20 | ): boolean => {
21 | const bannerRoutes: string[] = [Home.HomeScreen, Settings.SettingsScreen];
22 |
23 | const showBanner = bannerRoutes?.includes(currentRouteName ?? '');
24 | return showBanner;
25 | };
26 |
--------------------------------------------------------------------------------
/src/utils/types.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2021 Queen’s Printer for Ontario
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 | import jsonLogic from 'json-logic-js';
17 | import {TrustedIssuersJWKS} from '../services/QRCodeValidator/lib/models/TrustedIssuersJWKS';
18 |
19 | export interface Ruleset {
20 | name?: string;
21 | date?: string;
22 | termsOfUse?: {
23 | en: [string];
24 | fr: [string];
25 | };
26 | minimumVersion?: AppUpdateSetting;
27 | ruleset?: [Rule];
28 | publicKeys?: TrustedIssuersJWKS;
29 | }
30 |
31 | export interface Rule {
32 | expiry: string;
33 | ruleDescription: {
34 | en: [string];
35 | fr: [string];
36 | };
37 | rule: jsonLogic.RulesLogic;
38 | }
39 |
40 | export interface AppUpdateSetting {
41 | minimumMandatoryVersion?: string;
42 | effectiveDate?: string;
43 | }
44 |
--------------------------------------------------------------------------------
/src/utils/useLinkIfSupported.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2021 Queen’s Printer for Ontario
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 | import {useState, useEffect} from 'react';
17 | import {Linking} from 'react-native';
18 |
19 | const useLinkIfSupported = (link: string) => {
20 | const [supportedLink, setSupportedLink] = useState(null);
21 | useEffect(() => {
22 | (async () => {
23 | try {
24 | if (await Linking.canOpenURL(link)) {
25 | setSupportedLink(link);
26 | }
27 | } catch (e) {
28 | console.error(e);
29 | }
30 | })();
31 | }, [link]);
32 | return supportedLink;
33 | };
34 | export default useLinkIfSupported;
35 |
--------------------------------------------------------------------------------
/src/utils/useTelLink.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2021 Queen’s Printer for Ontario
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 | import {useState, useEffect} from 'react';
17 | import {Linking} from 'react-native';
18 |
19 | const useTelLink = (number: string) => {
20 | const [telLink, setTelLink] = useState(null);
21 | useEffect(() => {
22 | (async () => {
23 | try {
24 | if (await Linking.canOpenURL(`telprompt:${number}`)) {
25 | setTelLink(`telprompt:${number}`);
26 | } else if (await Linking.canOpenURL(`tel:${number}`)) {
27 | setTelLink(`tel:${number}`);
28 | }
29 | } catch (e) {
30 | console.error(e);
31 | }
32 | })();
33 | }, [number]);
34 | return telLink;
35 | };
36 | export default useTelLink;
37 |
--------------------------------------------------------------------------------
/src/utils/useWhenChanged.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2021 Queen’s Printer for Ontario
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 | import {useEffect, useRef, useState} from 'react';
17 |
18 | // Based on an idea called "usePrevious" from the React team
19 | function useWhenChanged(
20 | callback: (current: typeof prop, previousValue: typeof prop) => void,
21 | prop: any,
22 | initialValue?: typeof prop,
23 | ): void {
24 | const [internalState, setInternalState] = useState(initialValue ?? prop);
25 | const previousValueRef = useRef();
26 | const previousValue = previousValueRef.current;
27 | if (prop !== previousValue && prop !== internalState) {
28 | setInternalState(prop);
29 | callback(prop, previousValue);
30 | }
31 | useEffect(() => {
32 | previousValueRef.current = prop;
33 | }, [prop]);
34 | }
35 | export default useWhenChanged;
36 |
--------------------------------------------------------------------------------
/src/utils/withinUnder12GracePeriod.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2021 Queen’s Printer for Ontario
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 | import {DateTime} from 'luxon';
17 |
18 | export default function withinUnder12GracePeriod(
19 | birthDate: DateTime | undefined,
20 | ): boolean {
21 | if (birthDate === undefined) {
22 | return false;
23 | }
24 | const today = DateTime.now().startOf('day');
25 | const age = today.diff(birthDate, ['years', 'weeks']);
26 | return (
27 | age.years < 12 ||
28 | (birthDate.year >= 2010 && age.years === 12 && age.weeks <= 12)
29 | );
30 | }
31 |
--------------------------------------------------------------------------------
/test-data/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) Microsoft Corporation.
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE
22 |
--------------------------------------------------------------------------------
/test-data/README.md:
--------------------------------------------------------------------------------
1 | Contains data for tests:
2 | - examples downloaded from SMART Health Card spec site by `src/fetch-examples.ts`
3 | - generated by `src/generate-crypto-test-data.ts` and [this](https://github.com/microsoft/health-cards/blob/generate-test-files/generate-examples/src/index.ts) script.
4 |
--------------------------------------------------------------------------------
/test-data/badjwks/.well-known/jwks.json:
--------------------------------------------------------------------------------
1 | This is not a valid JSON Web Key Set!
2 |
--------------------------------------------------------------------------------
/test-data/example-00-c-jws-payload-minified.json:
--------------------------------------------------------------------------------
1 | {"iss":"https://spec.smarthealth.cards/examples/issuer","nbf":1630616666.128,"vc":{"type":["https://smarthealth.cards#health-card","https://smarthealth.cards#immunization","https://smarthealth.cards#covid19"],"credentialSubject":{"fhirVersion":"4.0.1","fhirBundle":{"resourceType":"Bundle","type":"collection","entry":[{"fullUrl":"resource:0","resource":{"resourceType":"Patient","name":[{"family":"Anyperson","given":["John","B."]}],"birthDate":"1951-01-20"}},{"fullUrl":"resource:1","resource":{"resourceType":"Immunization","status":"completed","vaccineCode":{"coding":[{"system":"http://hl7.org/fhir/sid/cvx","code":"207"}]},"patient":{"reference":"resource:0"},"occurrenceDateTime":"2021-01-01","performer":[{"actor":{"display":"ABC General Hospital"}}],"lotNumber":"0000001"}},{"fullUrl":"resource:2","resource":{"resourceType":"Immunization","status":"completed","vaccineCode":{"coding":[{"system":"http://hl7.org/fhir/sid/cvx","code":"207"}]},"patient":{"reference":"resource:0"},"occurrenceDateTime":"2021-01-29","performer":[{"actor":{"display":"ABC General Hospital"}}],"lotNumber":"0000007"}}]}}}}
--------------------------------------------------------------------------------
/test-data/example-00-d-jws.txt:
--------------------------------------------------------------------------------
1 | eyJ6aXAiOiJERUYiLCJhbGciOiJFUzI1NiIsImtpZCI6IjNLZmRnLVh3UC03Z1h5eXd0VWZVQUR3QnVtRE9QS01ReC1pRUxMMTFXOXMifQ.3ZJPb9QwEMW_SjVcs0mcwm43N7ZIBQ4IicIF7cHrzG6M_CeynahLle_OjHcrCmp74oRvEz___N5z7kHHCC30KQ2xrao4oCqjlSH1KE3qSyVDFyu8k3YwGCtSjxigALfbQyuWl_VSLGmVorkqYFLQ3kM6Dgjt99_Mv3GvTsOCB0I9r9PWjk7_lEl796JQ-Ul3Yg3bAlTADl3S0nwZdz9QJba073X4hiEyp4XXZV0K4vHXzeg6g6wJGP0YFN5m-3DeKM5xQHljiHZyQheEI2Uk8mjM12BI8HC-rUnwMDwB_kxx6Dx3KC2eINJqQzx460gTYr7joCd03ONH3_O8KWE7U8CdpvDvZGKWWL8Ri1osmhrmuXjSjXjZzYc_K45JpjHmuPzgCfmBJqmUdnjtu0xQvtPukI3HY0xoz_8PvUxvVqUPh4qbraLuKjXdEUDlk9DUK5i3cwHDuYJsZ48BHXt73CCJvFJjyFsc9lbbE6LJgWuORVXtfbD0P7IXqZIPjOx0HIzMdW6uL27QYZDm4r2Pg07SUFFUovHp02h3fBTqvMSzDTb_ZYPN-l83uOKNmdYv.kgkuHWZAAE3DmgdR2-hydvXYEuBWMNYfiwGjEvgqqFWrUAIXWk81RpB5EuTTbr85ZQIctgZAO2ER2J4hltVJog
--------------------------------------------------------------------------------
/test-data/example-00-e-file.smart-health-card:
--------------------------------------------------------------------------------
1 | {
2 | "verifiableCredential": [
3 | "eyJ6aXAiOiJERUYiLCJhbGciOiJFUzI1NiIsImtpZCI6IjNLZmRnLVh3UC03Z1h5eXd0VWZVQUR3QnVtRE9QS01ReC1pRUxMMTFXOXMifQ.3ZJPb9QwEMW_SjVcs0mcwm43N7ZIBQ4IicIF7cHrzG6M_CeynahLle_OjHcrCmp74oRvEz___N5z7kHHCC30KQ2xrao4oCqjlSH1KE3qSyVDFyu8k3YwGCtSjxigALfbQyuWl_VSLGmVorkqYFLQ3kM6Dgjt99_Mv3GvTsOCB0I9r9PWjk7_lEl796JQ-Ul3Yg3bAlTADl3S0nwZdz9QJba073X4hiEyp4XXZV0K4vHXzeg6g6wJGP0YFN5m-3DeKM5xQHljiHZyQheEI2Uk8mjM12BI8HC-rUnwMDwB_kxx6Dx3KC2eINJqQzx460gTYr7joCd03ONH3_O8KWE7U8CdpvDvZGKWWL8Ri1osmhrmuXjSjXjZzYc_K45JpjHmuPzgCfmBJqmUdnjtu0xQvtPukI3HY0xoz_8PvUxvVqUPh4qbraLuKjXdEUDlk9DUK5i3cwHDuYJsZ48BHXt73CCJvFJjyFsc9lbbE6LJgWuORVXtfbD0P7IXqZIPjOx0HIzMdW6uL27QYZDm4r2Pg07SUFFUovHp02h3fBTqvMSzDTb_ZYPN-l83uOKNmdYv.kgkuHWZAAE3DmgdR2-hydvXYEuBWMNYfiwGjEvgqqFWrUAIXWk81RpB5EuTTbr85ZQIctgZAO2ER2J4hltVJog"
4 | ]
5 | }
--------------------------------------------------------------------------------
/test-data/example-00-f-qr-code-numeric-value-0.txt:
--------------------------------------------------------------------------------
1 | shc:/5676290952432060346029243740446031222959532654603460292540772804336028702864716745222809286133314564376531415906402203064504590856435503414245413640370636654171372412363803043756220467374075323239254334433260573601064529355312367424324250386141547003645474640706331045282136072860542825105427697726093250225676655259316356503461275469226467100766377324775050503308771062272722220603303605756952660766226861633827043024066838764123257672116206447426227138617560582031575336767242635041383126644166696268442531360662320923586171121250327306267339703422210328126912354261621050632463101209293600406306445806532063392023630638036574455577123629535203100643075960247667074343454103300773274377565809580974292635034425330864000623563032087536276361602745763659562428054062116461320405212811272200694065743223742150627575092375063022055628332968367775070903583944691061662255030634332706503411304224104011225567732373452630424231113760046670645969647243613861436145774454503007082967612764723577582257642129686440556561717203753673713572622806274403756677501135734075734168403559076853695231723061435524402363621223403008600654742723724429704507112127437110062222297325296176257054126353532409312958427234374143715753230335102843684528356134750327287732554209723105103644452364076905355803103840252540667327670305590657213968733238772339535045443533006311067234303364554473016258627227424520202406236458553705005976557343442472214232334457607426612473586868254269402028434262110437672108247239395369110845362854715845203405243705290759637141296658
--------------------------------------------------------------------------------
/test-data/example-00-g-qr-code-0.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ongov/OpenVerify/7fd2bebb1af61456f858bbc1b38917fbf8234553/test-data/example-00-g-qr-code-0.bmp
--------------------------------------------------------------------------------
/test-data/example-00-g-qr-code-0.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ongov/OpenVerify/7fd2bebb1af61456f858bbc1b38917fbf8234553/test-data/example-00-g-qr-code-0.jpg
--------------------------------------------------------------------------------
/test-data/example-00-g-qr-code-0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ongov/OpenVerify/7fd2bebb1af61456f858bbc1b38917fbf8234553/test-data/example-00-g-qr-code-0.png
--------------------------------------------------------------------------------
/test-data/example-01-c-jws-payload-minified.json:
--------------------------------------------------------------------------------
1 | {"iss":"https://spec.smarthealth.cards/examples/issuer","nbf":1630616666.277,"vc":{"type":["https://smarthealth.cards#health-card","https://smarthealth.cards#immunization","https://smarthealth.cards#covid19"],"credentialSubject":{"fhirVersion":"4.0.1","fhirBundle":{"resourceType":"Bundle","type":"collection","entry":[{"fullUrl":"resource:0","resource":{"resourceType":"Patient","name":[{"family":"Anyperson","given":["Jane","C."]}],"birthDate":"1961-01-20"}},{"fullUrl":"resource:1","resource":{"resourceType":"Immunization","status":"completed","vaccineCode":{"coding":[{"system":"http://hl7.org/fhir/sid/cvx","code":"208"}]},"patient":{"reference":"resource:0"},"occurrenceDateTime":"2021-01-01","performer":[{"actor":{"display":"ABC General Hospital"}}],"lotNumber":"0000002"}},{"fullUrl":"resource:2","resource":{"resourceType":"Immunization","status":"completed","vaccineCode":{"coding":[{"system":"http://hl7.org/fhir/sid/cvx","code":"208"}]},"patient":{"reference":"resource:0"},"occurrenceDateTime":"2021-01-29","performer":[{"actor":{"display":"ABC General Hospital"}}],"lotNumber":"0000008"}}]}}}}
--------------------------------------------------------------------------------
/test-data/example-01-d-jws.txt:
--------------------------------------------------------------------------------
1 | eyJ6aXAiOiJERUYiLCJhbGciOiJFUzI1NiIsImtpZCI6IkVCS09yNzJRUURjVEJVdVZ6QXprZkJUR2V3MFpBMTZHdVd0eTY0blMtc3cifQ.3ZJJb9swEIX_SjC9ytpS2LFujQsk6aEo0LSXwgeaGlssuAhchLiB_ntnaAddkOTUU3mj-Obje496BBUCdDDEOIauqsKIsgxG-Dig0HEopfB9qPBBmFFjqEid0EMBdreHrlle1stmSatsV6sCJgndI8TjiNB9-8X8G_fmtFnwhlAv65QxyaofIipnXxVKN6m-WcO2AOmxRxuV0J_T7jvKyJb2g_Jf0QfmdPC2rMuGePz1OtleI2s8Bpe8xPtsH84HxTkOSKc10U5O6AJ_pIxETlp_8ZoET_NdTYKnzTPgTxSH5rlDYfAEEUZp4sE7Sxof8h0HNaHlHj8Iyz42JWxnCrhTFP69iMxq1stmUTeLtoZ5Lp5107zu5u7PikMUMYUclx88Ij_QJKRUFjeuzwTpemUP2Xg4hojm_P_Qywx6VTp_qLjZKqi-ktMDAWSehLa-gnk7FzCeK8h29ujRsrffGySRkzL5fMRh75U5IdocuOZYVNXeeUP_I3sRMjrPyF6FUYtc5_Xm4gYteqEvbl0YVRSaiqIStYsfk9nxKNR5tS822P6XDbbrf93gFR_MtH4C.plovRahm_Kj4-ZG9Q9KEh9SAyZkZL1xJhwXcRfm4JXpS6ocYy2Y0R5OdXxmX-JNHMVjh3spNpS-vPgpyyeM-2g
--------------------------------------------------------------------------------
/test-data/example-01-e-file.smart-health-card:
--------------------------------------------------------------------------------
1 | {
2 | "verifiableCredential": [
3 | "eyJ6aXAiOiJERUYiLCJhbGciOiJFUzI1NiIsImtpZCI6IkVCS09yNzJRUURjVEJVdVZ6QXprZkJUR2V3MFpBMTZHdVd0eTY0blMtc3cifQ.3ZJJb9swEIX_SjC9ytpS2LFujQsk6aEo0LSXwgeaGlssuAhchLiB_ntnaAddkOTUU3mj-Obje496BBUCdDDEOIauqsKIsgxG-Dig0HEopfB9qPBBmFFjqEid0EMBdreHrlle1stmSatsV6sCJgndI8TjiNB9-8X8G_fmtFnwhlAv65QxyaofIipnXxVKN6m-WcO2AOmxRxuV0J_T7jvKyJb2g_Jf0QfmdPC2rMuGePz1OtleI2s8Bpe8xPtsH84HxTkOSKc10U5O6AJ_pIxETlp_8ZoET_NdTYKnzTPgTxSH5rlDYfAEEUZp4sE7Sxof8h0HNaHlHj8Iyz42JWxnCrhTFP69iMxq1stmUTeLtoZ5Lp5107zu5u7PikMUMYUclx88Ij_QJKRUFjeuzwTpemUP2Xg4hojm_P_Qywx6VTp_qLjZKqi-ktMDAWSehLa-gnk7FzCeK8h29ujRsrffGySRkzL5fMRh75U5IdocuOZYVNXeeUP_I3sRMjrPyF6FUYtc5_Xm4gYteqEvbl0YVRSaiqIStYsfk9nxKNR5tS822P6XDbbrf93gFR_MtH4C.plovRahm_Kj4-ZG9Q9KEh9SAyZkZL1xJhwXcRfm4JXpS6ocYy2Y0R5OdXxmX-JNHMVjh3spNpS-vPgpyyeM-2g"
4 | ]
5 | }
--------------------------------------------------------------------------------
/test-data/example-01-f-qr-code-numeric-value-0.txt:
--------------------------------------------------------------------------------
1 | shc:/5676290952432060346029243740446031222959532654603460292540772804336028702864716745222809286241223803127633772937404037614124294155414509364367694562294037054106322567213239452755415503563944035363327154065460573601064529295312707424284350386122127671673805312572613670620952246603313843745856522663707072205954593160215065716552205555623439404006646100345361560712092121402255232324342852726870302870587526002360580327246667572112683521216425256168246055032432215569562769636356047071643852717041097022295865552811396160332112001143112650576471256574596320730908367576526657286067654375413033096400425434052034647537757241032950391061733076295305585029570336576455352205693272265635770434716356280570112167561175357170271107277539623438305404034008340920295067287524396367501145662439503355394430657739355839753827086963234457202424404567077024103875665711590327335227632761112876770705294275652269593925350912603275680470716440395631716645083167080403107772087210356062324032444054637511112861503629303740256156727774396756644035054358075966616450355036767475094139675068316145306860006271322320423856593152005865621025772256301159051272613770695757267638376277310857323759100840082855665472344544413343565640355028067037326169357625092540447154085043640758447156682473536303444137385260682838714470576212657530333708713811050535094323535369571206582537503271270722016763667337525964503061070045261236123024591238207645624531047529597443543757640729436738096654447605440337083455437564430029332732416159067067336738007335586776765632000558
--------------------------------------------------------------------------------
/test-data/example-01-g-qr-code-0.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ongov/OpenVerify/7fd2bebb1af61456f858bbc1b38917fbf8234553/test-data/example-01-g-qr-code-0.bmp
--------------------------------------------------------------------------------
/test-data/example-01-g-qr-code-0.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ongov/OpenVerify/7fd2bebb1af61456f858bbc1b38917fbf8234553/test-data/example-01-g-qr-code-0.jpg
--------------------------------------------------------------------------------
/test-data/example-01-g-qr-code-0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ongov/OpenVerify/7fd2bebb1af61456f858bbc1b38917fbf8234553/test-data/example-01-g-qr-code-0.png
--------------------------------------------------------------------------------
/test-data/example-02-g-qr-code-0.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ongov/OpenVerify/7fd2bebb1af61456f858bbc1b38917fbf8234553/test-data/example-02-g-qr-code-0.bmp
--------------------------------------------------------------------------------
/test-data/example-02-g-qr-code-0.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ongov/OpenVerify/7fd2bebb1af61456f858bbc1b38917fbf8234553/test-data/example-02-g-qr-code-0.jpg
--------------------------------------------------------------------------------
/test-data/example-02-g-qr-code-0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ongov/OpenVerify/7fd2bebb1af61456f858bbc1b38917fbf8234553/test-data/example-02-g-qr-code-0.png
--------------------------------------------------------------------------------
/test-data/example-02-g-qr-code-1.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ongov/OpenVerify/7fd2bebb1af61456f858bbc1b38917fbf8234553/test-data/example-02-g-qr-code-1.bmp
--------------------------------------------------------------------------------
/test-data/example-02-g-qr-code-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ongov/OpenVerify/7fd2bebb1af61456f858bbc1b38917fbf8234553/test-data/example-02-g-qr-code-1.jpg
--------------------------------------------------------------------------------
/test-data/example-02-g-qr-code-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ongov/OpenVerify/7fd2bebb1af61456f858bbc1b38917fbf8234553/test-data/example-02-g-qr-code-1.png
--------------------------------------------------------------------------------
/test-data/example-02-g-qr-code-2.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ongov/OpenVerify/7fd2bebb1af61456f858bbc1b38917fbf8234553/test-data/example-02-g-qr-code-2.bmp
--------------------------------------------------------------------------------
/test-data/example-02-g-qr-code-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ongov/OpenVerify/7fd2bebb1af61456f858bbc1b38917fbf8234553/test-data/example-02-g-qr-code-2.jpg
--------------------------------------------------------------------------------
/test-data/example-02-g-qr-code-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ongov/OpenVerify/7fd2bebb1af61456f858bbc1b38917fbf8234553/test-data/example-02-g-qr-code-2.png
--------------------------------------------------------------------------------
/test-data/issuer.jwks.public.not.smart.json:
--------------------------------------------------------------------------------
1 | {
2 | "keys": [
3 | {
4 | "kty": "EC",
5 | "kid": "ARrigjsh8mTqaVdihxO5cxkaRjpjXUg8ARET6IzhvaQ",
6 | "use": "sig",
7 | "alg": "ES256",
8 | "crv": "P-256",
9 | "x": "bvRiNLRBima85Q6U3jY2chbPQWX3Fyn0WvzDw_3VJWk",
10 | "y": "HlpuaCRfCfTjqR2ZLGVHgD54QQdL5R2t-9bH6SvEajc"
11 | }
12 | ]
13 | }
--------------------------------------------------------------------------------
/test-data/private_key.json:
--------------------------------------------------------------------------------
1 | {"keys":[{"kty":"EC","kid":"d630duSMWmVfmOtrMKZX6izJfcampjK1h0D4jrXxJwU","use":"sig","alg":"ES256","crv":"P-256","x":"IpNzj8m7NEZdNG4mdEsTmDWFFyKLE7PmtBLWLGIoJuA","y":"mVqRexUnULniMBghiSfb8L3HDZSTxhdKWfIcP6Tvabs","d":"qYg7yrhjPYGJNHc0e9xYNodLaKQvVNG6cShRyhwtwHQ"}]}
--------------------------------------------------------------------------------
/test-data/test-example-00-d-jws-der-signature-r-neg.txt:
--------------------------------------------------------------------------------
1 | eyJ6aXAiOiJERUYiLCJhbGciOiJFUzI1NiIsImtpZCI6IjNLZmRnLVh3UC03Z1h5eXd0VWZVQUR3QnVtRE9QS01ReC1pRUxMMTFXOXMifQ.3ZJJb9swEIX_SjC9ytqaxJVudQp0ORQFmvZS-EBTY4sFF4GLEDfQf-8M7aALkpx6qm4jPn5875H3oEKAHsYYp9BXVZhQlsEIH0cUOo6lFH4IFd4JM2kMFakTeijA7vbQN9dte7W-ftm9Krv2soBZQn8P8Tgh9N9-Mf_GvTgNKx4I9bROGZOs-iGicvZZoXSzGpoOtgVIjwPaqIT-nHbfUUa2tB-V_4o-MKeHy7IuG-Lx302yg0bWeAwueYm32T6cF4pzHJBOa6KdnNAB_kgZiZy0_uI1CR729zUJHoZHwJ8oDu3nDoXBE0QYpYkHry1pfMhnHNSMlnv84EaeNyVsFwq4UxT-jYjMarqrZlU3q7aGZSkeddM87-b9nxWHKGIKOS5feES-oFlIqSzeuCETpBuUPWTj4RgimvP7oZsZ9bp0_lBxs1VQQyXnOwLIvBPaeg3LdilgOleQ7ezRo2VvvzdIIidl8nmJw94qc0K0OXDNsaiqvfOG3iN7ETI6z8hBhUmLXOfm5uItWvRCX7xzYVJRaCqKStQufkxmx1uhzl_zZIPtf9lg2_3rBte8sND3Ew.MEUCIQCvejwlbwIaRmlL8NH-0kRnW_xOwmk8zFErIYJoAy_NMgIgJ4J1zgy58iWycFJc_oojUURr7SRzyCcA2Gpib2IOTfg
--------------------------------------------------------------------------------
/test-data/test-example-00-d-jws-der-signature-rs-neg.txt:
--------------------------------------------------------------------------------
1 | eyJ6aXAiOiJERUYiLCJhbGciOiJFUzI1NiIsImtpZCI6IjNLZmRnLVh3UC03Z1h5eXd0VWZVQUR3QnVtRE9QS01ReC1pRUxMMTFXOXMifQ.3ZJJb9swEIX_SjC9ytqaxJVudQp0ORQFmvZS-EBTY4sFF4GLEDfQf-8M7aALkpx6qm4jPn5875H3oEKAHsYYp9BXVZhQlsEIH0cUOo6lFH4IFd4JM2kMFakTeijA7vbQN9dte7W-ftm9Krv2soBZQn8P8Tgh9N9-Mf_GvTgNKx4I9bROGZOs-iGicvZZoXSzGpoOtgVIjwPaqIT-nHbfUUa2tB-V_4o-MKeHy7IuG-Lx302yg0bWeAwueYm32T6cF4pzHJBOa6KdnNAB_kgZiZy0_uI1CR729zUJHoZHwJ8oDu3nDoXBE0QYpYkHry1pfMhnHNSMlnv84EaeNyVsFwq4UxT-jYjMarqrZlU3q7aGZSkeddM87-b9nxWHKGIKOS5feES-oFlIqSzeuCETpBuUPWTj4RgimvP7oZsZ9bp0_lBxs1VQQyXnOwLIvBPaeg3LdilgOleQ7ezRo2VvvzdIIidl8nmJw94qc0K0OXDNsaiqvfOG3iN7ETI6z8hBhUmLXOfm5uItWvRCX7xzYVJRaCqKStQufkxmx1uhzl_zZIPtf9lg2_3rBte8sND3Ew.MEYCIQCd2lvDmNmiHTxHC5vHUaZlNntXCKIedaHYloYJfDZ0QwIhANrHbCyIYSVqMP4ZmuK6O1ErEo5bZSAhzZoGQbG0LzY5
--------------------------------------------------------------------------------
/test-data/test-example-00-d-jws-der-signature-s-neg.txt:
--------------------------------------------------------------------------------
1 | eyJ6aXAiOiJERUYiLCJhbGciOiJFUzI1NiIsImtpZCI6IjNLZmRnLVh3UC03Z1h5eXd0VWZVQUR3QnVtRE9QS01ReC1pRUxMMTFXOXMifQ.3ZJJb9swEIX_SjC9ytqaxJVudQp0ORQFmvZS-EBTY4sFF4GLEDfQf-8M7aALkpx6qm4jPn5875H3oEKAHsYYp9BXVZhQlsEIH0cUOo6lFH4IFd4JM2kMFakTeijA7vbQN9dte7W-ftm9Krv2soBZQn8P8Tgh9N9-Mf_GvTgNKx4I9bROGZOs-iGicvZZoXSzGpoOtgVIjwPaqIT-nHbfUUa2tB-V_4o-MKeHy7IuG-Lx302yg0bWeAwueYm32T6cF4pzHJBOa6KdnNAB_kgZiZy0_uI1CR729zUJHoZHwJ8oDu3nDoXBE0QYpYkHry1pfMhnHNSMlnv84EaeNyVsFwq4UxT-jYjMarqrZlU3q7aGZSkeddM87-b9nxWHKGIKOS5feES-oFlIqSzeuCETpBuUPWTj4RgimvP7oZsZ9bp0_lBxs1VQQyXnOwLIvBPaeg3LdilgOleQ7ezRo2VvvzdIIidl8nmJw94qc0K0OXDNsaiqvfOG3iN7ETI6z8hBhUmLXOfm5uItWvRCX7xzYVJRaCqKStQufkxmx1uhzl_zZIPtf9lg2_3rBte8sND3Ew.MEUCID2lGtFskO3E7_ai9JEg2SXH-hL3tQbGbLmCWoGAlGwxAiEA38kYQ5XfOv7Z-7sj0lVs6ICxHRl29UGio1Ygyg2d1bk
--------------------------------------------------------------------------------
/test-data/test-example-00-d-jws-der-signature.txt:
--------------------------------------------------------------------------------
1 | eyJ6aXAiOiJERUYiLCJhbGciOiJFUzI1NiIsImtpZCI6IjNLZmRnLVh3UC03Z1h5eXd0VWZVQUR3QnVtRE9QS01ReC1pRUxMMTFXOXMifQ.3ZJJb9swEIX_SjC9ytqaxJVudQp0ORQFmvZS-EBTY4sFF4GLEDfQf-8M7aALkpx6qm4jPn5875H3oEKAHsYYp9BXVZhQlsEIH0cUOo6lFH4IFd4JM2kMFakTeijA7vbQN9dte7W-ftm9Krv2soBZQn8P8Tgh9N9-Mf_GvTgNKx4I9bROGZOs-iGicvZZoXSzGpoOtgVIjwPaqIT-nHbfUUa2tB-V_4o-MKeHy7IuG-Lx302yg0bWeAwueYm32T6cF4pzHJBOa6KdnNAB_kgZiZy0_uI1CR729zUJHoZHwJ8oDu3nDoXBE0QYpYkHry1pfMhnHNSMlnv84EaeNyVsFwq4UxT-jYjMarqrZlU3q7aGZSkeddM87-b9nxWHKGIKOS5feES-oFlIqSzeuCETpBuUPWTj4RgimvP7oZsZ9bp0_lBxs1VQQyXnOwLIvBPaeg3LdilgOleQ7ezRo2VvvzdIIidl8nmJw94qc0K0OXDNsaiqvfOG3iN7ETI6z8hBhUmLXOfm5uItWvRCX7xzYVJRaCqKStQufkxmx1uhzl_zZIPtf9lg2_3rBte8sND3Ew.MEQCIDKJ8bCwdn8ZVhy1ZbWqGbuHjx12agrxX_gjzxBnRtvmAiARrudEoblB8xMXXma2zmP_1gh7Oo3MDxJHWk36WnFiCA
--------------------------------------------------------------------------------
/test-data/test-example-00-d-jws-invalid-signature.txt:
--------------------------------------------------------------------------------
1 | eyJ6aXAiOiJERUYiLCJhbGciOiJFUzI1NiIsImtpZCI6IjNLZmRnLVh3UC03Z1h5eXd0VWZVQUR3QnVtRE9QS01ReC1pRUxMMTFXOXMifQ.3ZJJb9swEIX_SjC9ytqaxJVudQp0ORQFmvZS-EBTY4sFF4GLEDfQf-8M7aALkpx6qm4jPn5875H3oEKAHsYYp9BXVZhQlsEIH0cUOo6lFH4IFd4JM2kMFakTeijA7vbQN9dte7W-ftm9Krv2soBZQn8P8Tgh9N9-Mf_GvTgNKx4I9bROGZOs-iGicvZZoXSzGpoOtgVIjwPaqIT-nHbfUUa2tB-V_4o-MKeHy7IuG-Lx302yg0bWeAwueYm32T6cF4pzHJBOa6KdnNAB_kgZiZy0_uI1CR729zUJHoZHwJ8oDu3nDoXBE0QYpYkHry1pfMhnHNSMlnv84EaeNyVsFwq4UxT-jYjMarqrZlU3q7aGZSkeddM87-b9nxWHKGIKOS5feES-oFlIqSzeuCETpBuUPWTj4RgimvP7oZsZ9bp0_lBxs1VQQyXnOwLIvBPaeg3LdilgOleQ7ezRo2VvvzdIIidl8nmJw94qc0K0OXDNsaiqvfOG3iN7ETI6z8hBhUmLXOfm5uItWvRCX7xzYVJRaCqKStQufkxmx1uhzl_zZIPtf9lg2_3rBte8sND3Ew.Ma9Hatts9reee7DA7Sj8rfcIkH816fI1LkFSXj3s1aT6tdGmDiveDE2yNqi7ZHHKMViFInas_37Hi6mMrQW4BA
--------------------------------------------------------------------------------
/test-data/test-example-00-d-jws-issuer-kid-mismatch.txt:
--------------------------------------------------------------------------------
1 | eyJ6aXAiOiJERUYiLCJhbGciOiJFUzI1NiIsImtpZCI6IkFScmlnanNoOG1UcWFWZGloeE81Y3hrYVJqcGpYVWc4QVJFVDZJemh2YVEifQ.3ZJLb9swEIT_SrC9yhKlJHatW50CfRyKAk1zKXygqbXFgg-BpIS4gf57d2kHfSDJqafqtuLw48yQD6BjhBb6lIbYVlUcUJXRypB6lCb1pZKhixXeSzsYjBWpRwxQgNvtoa2Xl-JyeSWWr8vruilgUtA-QDoOCO23X8y_ca9Ow4IHQj2v09aOTv-QSXv3olD5SXf1GrYFqIAduqSl-TLuvqNKbGnf63CHITKnhatSlDXx-O9mdJ1B1gSMfgwKb7N9OC8U5zigvDFEOzmhA8KRMhJ5NOZrMCR43N8KEjwOT4A_Uxzazx1KiyeItNoQD9440oSYzzjoCR33-NH3PG9K2M4UcKcp_FuZmFWvr-uFqBeNgHkunnRTv-zmw58VxyTTGHNcvvCEfEGTVEo7vPFdJijfaXfIxuMxJrTn90M305tV6cOh4marqLtKTfcEUHknNGIF83YuYDhXkO3sMaBjb783SCKv1BjyEoe91faEaHJgwbGoqr0Plt4je5Eq-cDITsfByFzn5ubiHToM0ly893HQSRoqiko0Pn0a7Y63gshf_WyDzX_ZYLP-1w2ueGGm7yc.ppJ_XIPRcT4J4bLzLdBisVRqCcgJdhlWyTE85rFyw4Amvf2uuV6p6ZxeA9pHi24pIDFICMlEhl-Hk8ciBbK2BQ
--------------------------------------------------------------------------------
/test-data/test-example-00-d-jws-issuer-not-valid-with-smart-key.txt:
--------------------------------------------------------------------------------
1 | eyJ6aXAiOiJERUYiLCJhbGciOiJFUzI1NiIsImtpZCI6IjNLZmRnLVh3UC03Z1h5eXd0VWZVQUR3QnVtRE9QS01ReC1pRUxMMTFXOXMifQ.3ZJLb9swEIT_SrC9ynrFqWrd6hTo41AUaNpL4QNNrSwWfAgkJcQN9N-7SztBiyY55VTdVhx-nBnyDlQI0MIQ4xjaouidy4MRPg4odBxyKXwXCrwVZtQYChJP6CEDu--hrV5fllfry_pNkzfrOoNZQnsH8TgitD8ekP_gXp2GFQ-EelqnjJms-iWicvZZoXSz6qoN7DKQHju0UQn9ddr_RBnZUj8o_x19YE4L67zMK-Lx3-1kO42s8Rjc5CXeJPtwXsjOcUA6rYl2ckIH-CNlJPKk9TevSXC_vy1JcD88Av5CcWg_dygMniDCKE08eGtJ40M646BmtNzjJzfwvM1ht1DAvaLw70RkVrW5qlZltapLWJbsUTfV824-_l1xiCJOIcXlC4_IFzQLKZXFa9clgnSdsodkPBxDRHN-PnQzg25y5w8FN1sE1RVyviWATDuhLhtYdksG47mCZKdHj5a9_dkgiZyUk09LHPZGmROiToFLjkVV9c4beo_sRcjoPCM7FUYtUp3b64v3aNELffHBhVFFoakoKlG7-Hkye94KZfqqJxus_8sG681LN9jwwkLfbw.ZZJ6oBVioXmGwDDp8__jaCBLhsYnag7ghqmYIbN85a1iyaXAda8MnFiNzbv-YN0DBi47IajycvhcINILK9dLhw
--------------------------------------------------------------------------------
/test-data/test-example-00-d-jws-jws_too_long.txt:
--------------------------------------------------------------------------------
1 | eyJ6aXAiOiJERUYiLCJhbGciOiJFUzI1NiIsImtpZCI6IjNLZmRnLVh3UC03Z1h5eXd0VWZVQUR3QnVtRE9QS01ReC1pRUxMMTFXOXMifQ.3VRbb6M4GP0rI_c1TbikgeRpQ9LpNNvcRNJOZlUhxxhsMJC1DYSO8t_XJs3srDSptA_7sgYJ2T4-Pud8Nt8BFQKMAJHyIEa9nsgglwRDJkkXQR6KHj7C7MCw6ClgiTnoAAolGJkDsz_oO_2B0x1YVgdUCIy-g99QkUt8VPN__KCs67pb292Cxz3LMN0e4jjEuaSQiV5lgtcOkM0B6xXPmNOIwj3Dkx8Ytd9VbTc1L_L49jx0q4c-RNMsK3P6BiUt8g-BqKhoaA61tL_F-uU-wUhqlxGhXGkVmmcE-l2jayo-PeqVeciwxnAsipIjvGm9gfeJi1eACsYU21mJ2oA3KgDFXDK25UwBLutHhgJcOr8gXik7ar0C5TDDZxKYUab4wDhXGC7aPWJa4VyHPCuI7ntd8HpSBmOch6qqI5DBVt-eqjCmUGpuc3hn3hrmrWWA06nzS3Xmx-oe_xm5kFCWorWvz5TEumAVRIjmeFKELQMqQprHrRHRCImz99OpKkWY0x4jnXRP0LCHqqMiQO1KYBkOOL2eOuDwHkkrJ8Ic51rbz4kqUIFQydspbXZDszOF1Ro2tK0Dp-pkNP67N8lL3AGsQGcz18htTc4KuSizfZvrUyE_3RhtM6_GaP0vY7SG_0mMztUY7Y9jfLrserksYOxNPq0I5BlEzVXW_r9l3RAqAvXCoMK8CVhxaXkcaEiAjwhjXZ9A_XgCU92zACkVEEl1XQNGMyqDqOCBupuqKGEwe_GDBSWlcSCPKXFdWyQpS5PoJk2ICCOX2Gnih6oTuXGqPmFczfhd9Dax-95qNZ9Gc7JsUOjf2_fZ8c2fMQH73ng6drKHceKxOmGDyHJ3S-KYxWLhht_u7tcQfVlXokqwb7PZtDT77E_6_DBh5m5mrIW1eYYvd1-304UfOQcrcuZNY3nNNzN52zrrrSwnD5-bXWKbS_Flvfg93u9QRMXjSzGvpuvN08PWFSlJiTbxOa1JVDeOerzH5dbaLD2H7MnQjfOhO7TdJI-HbmIP8zjZ3u-iNXuiz5XhVaval9ncHwyrZep643GqCvh6Uu0v.WZZrR7E2e3pZgovfID3UdQoUeY7kQSpDsw_VrUJIqlIe4Ocs-ytVi-S3NY5ZQ9kmgrRmIA-aKLGu3UKvfNvtFA
--------------------------------------------------------------------------------
/test-data/test-example-00-d-jws-no_jws_header_alg.txt:
--------------------------------------------------------------------------------
1 | eyJ6aXAiOiJERUYiLCJraWQiOiIzS2ZkZy1Yd1AtN2dYeXl3dFVmVUFEd0J1bURPUEtNUXgtaUVMTDExVzlzIn0.3ZJLb9swEIT_SrC9yhIlNFGsW50CfRyKAk17CXygqbXFgg-BpIS4gf57d2kHfSDJqafqtuLw48yQD6BjhA6GlMbYVVUcUZXRypAGlCYNpZKhjxXeSzsajBWpJwxQgNvtoauvmuayvRZXbSmu1wXMCroHSMcRobv7xfwb9-o0rHgg1PM6be3k9A-ZtHcvCpWfdV-vYVuACtijS1qaL9PuO6rElvaDDt8wROZ08LoUZU08_ruZXG-QNQGjn4LC22wfzgvFOQ4obwzRTk7ogHCkjESejPkaDAke93eCBI_DE-DPFIf2c4fS4gkirTbEgzeONCHmMw56Rsc9fvQDz5sStgsF3GkK_1YmZtXry3ol6lUjYFmKJ93UL7v58GfFMck0xRyXLzwhX9AsldIOb3yfCcr32h2y8XiMCe35_dDNDKYtfThU3GwVdV-p-Z4AKu-ERrSwbJcCxnMF2c4eAzr29nuDJPJKTSEvcdhbbU-IJgcWHIuq2vtg6T2yF6mSD4zsdRyNzHVubi7eocMgzcV7H0edpKGiqETj06fJ7ngriPzVzzbY_JcNNut_3WDLCwt9PwE.9ricS3s_xR1fl7YndWq5q0mc4-VeFBJNWpsaJULhccl8QIUnwWxtXc8Ps0C-vU-w_vcsoTnRggW_dex7afcj5w
--------------------------------------------------------------------------------
/test-data/test-example-00-d-jws-no_jws_header_kid.txt:
--------------------------------------------------------------------------------
1 | eyJ6aXAiOiJERUYiLCJhbGciOiJFUzI1NiJ9.3ZJJb9swEIX_SjC9ytraVLFudQp0ORQFmuZS-EBTY4sFF4GLEDfQf-8M7aALkpx6qm4jPn5875H3oEKAHsYYp9BXVZhQlsEIH0cUOo6lFH4IFd4JM2kMFakTeijA7vbQN6_b9rK7qrt1-fKqLWCW0N9DPE4I_bdfzL9xL07DigdCPa1TxiSrfoionH1WKN2shmYN2wKkxwFtVEJ_SbvvKCNb2o_K36IPzOnhVVmXDfH47ybZQSNrPAaXvMSbbB_OC8U5DkinNdFOTugAf6SMRE5af_WaBA_7-5oED8Mj4M8Uh_Zzh8LgCSKM0sSDN5Y0PuQzDmpGyz1-dCPPmxK2CwXcKQr_VkRmNevLZlU3q7aGZSkeddM87-bDnxWHKGIKOS5feES-oFlIqSxeuyETpBuUPWTj4RgimvP7oZsZdVc6f6i42SqooZLzHQFk3glt3cGyXQqYzhVkO3v0aNnb7w2SyEmZfF7isDfKnBBtDlxzLKpq77yh98hehIzOM3JQYdIi17m5vniHFr3QF-9dmFQUmoqiErWLn5LZ8Vao89c82WD7XzbYrv91gx0vLPT9BA.87iYe-m3TojgcTnaGfJLFlwWnV88Dbaw6E-Vpy3CdwEodoCJDdTaZvl_E_9YosrAkmjv32VxzBKvtvpn5yxqgA
--------------------------------------------------------------------------------
/test-data/test-example-00-d-jws-no_jws_header_zip.txt:
--------------------------------------------------------------------------------
1 | eyJhbGciOiJFUzI1NiIsImtpZCI6IjNLZmRnLVh3UC03Z1h5eXd0VWZVQUR3QnVtRE9QS01ReC1pRUxMMTFXOXMifQ.3ZJJb9swEIX_SjC9ylqIOo51q1Ogy6Eo0LSXwAeaGlssuAgkJcQN9N87QzvogiSnnKLbiI8f33vkPegYoYU-pSG2VRUHVGW0MqQepUl9qWToYoV30g4GY0XqEQMU4HZ7aJtLIZarq3opyitxWcCkoL2HdBwQ2ts_zP9xb07DggdCPa3T1o5O_5JJe_esUPlJd80atgWogB26pKX5Nu5-okpsad_r8ANDZE4Lb8u6bIjHfzej6wyyJmD0Y1B4k-3DeaE4xwHljSHayQkdEI6UkcijMd-DIcHD_rYmwcPwCPgrxaH93KG0eIJIqw3x4J0jTYj5jIOe0HGPn33P86aE7UwBd5rCv5eJWc162SzqZiFqmOfiUTfN824-_VtxTDKNMcflC0_IFzRJpbTDa99lgvKddodsPB5jQnt-P3QzvVmVPhwqbraKuqvUdEcAlXeCqFcwb-cChnMF2c4eAzr29neDJPJKjSEvcdgbbU8IkQPXHIuq2vtg6T2yF6mSD4zsdByMzHVuri8-oMMgzcVHHwedpKGiqETj05fR7ngr1PlrnmxQvMoGxfqlG1zxwkzfbw.zJk9rUTuxesBy9tBi-BmkqhutomkHd0357Yp58Mgwz6xYphxnEPA6lxj2lDZv6h9IeLFQP506DHH0EeVUik0HQ
--------------------------------------------------------------------------------
/test-data/test-example-00-d-jws-trailing_chars.txt:
--------------------------------------------------------------------------------
1 |
2 | eyJ6aXAiOiJERUYiLCJhbGciOiJFUzI1NiIsImtpZCI6IjNLZmRnLVh3UC03Z1h5eXd0VWZVQUR3QnVtRE9QS01ReC1pRUxMMTFXOXMifQ.3ZJLj9MwFIX_yuiyTZM4UEKzo4PEY4GQGNigLlzntjHyI7KdaMoo_5173Y54aGZWrMjuxsefzzn2HegYoYMhpTF2VRVHVGW0MqQBpUlDqWToY4W30o4GY0XqCQMU4PYH6MTLplm3r9r181K0BcwKujtIpxGh-_YL-Tft2XlY8UCkx3Xa2snpHzJp754UKj_rXmxgV4AK2KNLWprP0_47qsSWDoMOXzFE5nTwoqxLQTz-u51cb5A1AaOfgsKbbB8uC8UlDihvDNHOTuiAcKKMRJ6M-RIMCe73dzUJ7ocHwJ8oDu3nCqXFM0RabYgHrx1pQsxnHPWMjnv84AeetyXsFgq41xT-jUzMEpu1WNVi1dSwLMWDbsTTbt7_WXFMMk0xx-X7TsgXNEultMNr32eC8r12x2w8nmJCe3k-dDODaUsfjhU3W0XdV2q-JYDKO6GpW1h2SwHjpYJs54ABHXv7vUESeaWmkJc47I22Z0STA9cci6o6-GDpObIXqZIPjOx1HI3MdW6vr96iwyDN1TsfR52koaKoROPTx8nueSvU-ROPNtj8lw02m3_dYMsLC30_AQ.drW2nyE3vROTNI4SpQmIb2P1gp5jGRDqr_cnwZGmsZ3-Yl7WfpEO2lll_WrjjYO0IpDtFxkksyKIt3O3R7yvJA
3 |
--------------------------------------------------------------------------------
/test-data/test-example-00-d-jws-wrong_jws_header_kid.txt:
--------------------------------------------------------------------------------
1 | eyJ6aXAiOiJERUYiLCJhbGciOiJFUzI1NiIsImtpZCI6IjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAifQ.3ZJLb9swEIT_SrC9ypIoxHGtW50CfRyKAk17CXygqbXFgg-BpIS4gf57d2kHfSDJKafotuLw48yQ96BjhBb6lIbYVlUcUJXRypB6lCb1pZKhixXeSTsYjBWpRwxQgNvtoRVXTbNcvRX1ZbkUVwVMCtp7SMcBob39w_wf9-Y0LHgg1NM6be3o9C-ZtHfPCpWfdCfWsC1ABezQJS3Nt3H3E1ViS_tehx8YInNauCzrUhCP_25G1xlkTcDox6DwJtuH80JxjgPKG0O0kxM6IBwpI5FHY74HQ4KH_W1NgofhEfBXikP7uUNp8QSRVhviwTtHmhDzGQc9oeMeP_ue500J25kC7jSFfy8Ts8R6KRa1WDQ1zHPxqBvxvJtP_1Yck0xjzHH5whPyBU1SKe3w2neZoHyn3SEbj8eY0J7fD91Mb1alD4eKm62i7io13RFA5Z3Q1CuYt3MBw7mCbGePAR17-7tBEnmlxpCXOOyNtidEkwPXHIuq2vtg6T2yF6mSD4zsdByMzHVuri8-oMMgzcVHHwedpKGiqETj05fR7ngr1PkTTzbYvMoGm_VLN7jihZm-3w.QqKxqmYHnXxtdGySTF6cfd3nAngHVk1AMbz_6RnvcjzLQPKKlyTren8kUgB_LQbu4ycG6oIsDmaLHd3tVIUbhQ
--------------------------------------------------------------------------------
/test-data/test-example-00-e-file-bad_jwks.smart-health-card:
--------------------------------------------------------------------------------
1 | {
2 | "verifiableCredential": [
3 | "eyJ6aXAiOiJERUYiLCJhbGciOiJFUzI1NiIsImtpZCI6IjNLZmRnLVh3UC03Z1h5eXd0VWZVQUR3QnVtRE9QS01ReC1pRUxMMTFXOXMifQ.3ZLLbtswEEV_JZhuZb3a1JB2dQL0BRQFkmZTeEFRY4spHwI5UuoG-vcOaadIgSSrrsodyZk79x7yHlQI0MJANIa2KLy4y_eKhqmbAnrpLKGlXDpTGCW9C25HxYBC07CSwvdhNQutekHK2dXV5efCCGULwkB8JopO9Ld3PwJkYLsdtNXbuqybdVO-zs-bdQazhPYe6DAitN__WAhGeDrOyNOMV48GstTzdcqYyapfyc2LhdLNqq8a2GYgPfYcUQl9NXW3KCla2g3K36APUaeFN3mZV6wXTzeT7TXGGo_BTV7idbIPp4vsFAek05rVjk54gD9wRlaetP7mNRc89LclFzxsnhD-ynG4PzIUBo8iwijNevDOco0PacZezWgjx09uiPtNDtuFA3aKw18KilpVc16tympVl7As2ZNuqpfdfPwbcSBBU0hxzaiRMD7QLKRUFi9cnxSk65XdJ-PhEAjN6bvxywx6nTu_LyLZIqi-kPNPFpCpE-pyDct2yWA8IUh2dujRRm-PCXKRk3Ly6SqGvVbmKFGnwGWMxah2zhv0yYuQ5HyU7FUYtUg4Nxdn79GiF_rsgwujIqEZFEPUjr5MpoutUKZVPUuw_i8J1s2_JriOFwuv3w.mSgEsv1KogzkzSWbDNxpVS8-iPDtcKnWqVbgOxup2wal5BPgwsyvGmbMFochz335nA-GZGlImawLbsOyULOpqw"
4 | ]
5 | }
--------------------------------------------------------------------------------
/test-data/test-example-00-e-file-invalid_deflate.smart-health-card:
--------------------------------------------------------------------------------
1 | {
2 | "verifiableCredential": [
3 | "eyJ6aXAiOiJERUYiLCJhbGciOiJFUzI1NiIsImtpZCI6IjNLZmRnLVh3UC03Z1h5eXd0VWZVQUR3QnVtRE9QS01ReC1pRUxMMTFXOXMifQ.eJzdkklv2zAQhf9KML3K2tBUkG51CnQ5FAWa9lL4QFNjiwUXgYsQN9B_7wztoAuSnHqqbiM-fnzvkfegQoABphjnMFRVmFGWwQgfJxQ6TqUUfgwV3gkzawwVqRN6KMDuDzA0r9r2uuv6ui-7ti9gkTDcQzzNCMO3X8y_cS_Ow4YHQj2tU8Ykq36IqJx9Vijdosamh10B0uOINiqhP6f9d5SRLR0m5b-iD8wZ4GVZlw3x-O822VEjazwGl7zE22wfLgvFJQ5IpzXRzk7oAH-ijEROWn_xmgQP-4eaBA_DI-BPFIf2c4fC4BkijNLEg9eWND7kM45qQcs9fnATz9sSdisF3CsK_0ZEZjX9dbOpm01bw7oWj7ppnnfz_s-KQxQxhRyXLzwiX9AipFQWb9yYCdKNyh6z8XAKEc3l_dDNTLornT9W3GwV1FjJ5Y4AMu-Etu5g3a0FzJcKsp0DerTs7fcGSeSkTD4vcdhbZc6INgeuORZVdXDe0HtkL0JG5xk5qjBrkevc3ly9RYte6Kt3LswqCk1FUYnaxY_J7Hkr1Plrnmyw_S8bbPt_3WDHCyt9PwEOH3YA.QAeMpU7g7nqOJhJb3A1yIagMfOXKmILG6Sk269Tn_Lu-TfymQJNxGnrHPIyReyFqjf9eYGAYPYbWpdc2JCBBJQ"
4 | ]
5 | }
--------------------------------------------------------------------------------
/test-data/test-example-00-e-file-invalid_issuer_url.smart-health-card:
--------------------------------------------------------------------------------
1 | {
2 | "verifiableCredential": [
3 | "eyJ6aXAiOiJERUYiLCJhbGciOiJFUzI1NiIsImtpZCI6IjNLZmRnLVh3UC03Z1h5eXd0VWZVQUR3QnVtRE9QS01ReC1pRUxMMTFXOXMifQ.3ZJJb9swEIX_SjC9ytpaV7VudQp0ORQFmuZSGAFNji0WXAQuQtxA_71D2mkWJDn1VN5GM_PxvUfdgPQeehhCGH1fVX5EXnrNXBiQqTCUnDnhK7xmelToK5qO6KSZmJLiKjoFBZjtDvrmbdsuu3dNtyyX7esCJg79DYTDiND_vMM_Jr86FotUEOr5Oal1NPI3C9KaFwe5naRoVrApgDsUaIJk6nvc_kIekqTdIN0lOp84Pbwp67IhXvq6jkYoTDMOvY2O40WWD6dGcbID3CpFtKMSusAdyCORo1I_KJH-735f08Bt8QT4G9mh_ZQh03iEMC0V8eC9oRnn8x17OaFJOX6xQ6rXJWxmMriVZP4DC4nVrJbNom4WbQ3zXDyppnlZzeeHEfvAQvTZbnr7gOmBJsa5NHhuRSZwK6TZZ-H-4APq069ELzOorrRuX6VkKy9FxadrAvC8CW3dwbyZCxhPEWQ5O3Rokrb7CdKQ5Ty63EpmL6Q-ItpsuE62KKqddRpd1sJ4sC4hhfSjYjnO9fnZRzTomDr7ZP0oA1MUFIWobPga9TatQp1P82yC7X-ZYLv61wl2qTHT-QM.n-7E7wskNJhkAOYXABYDWeFtcpONEUAD4Vki2_Jlq33Z7mCDipbGVu25Z7AXRjkqCS04gewJoXkJNN6mXZgP7Q"
4 | ]
5 | }
--------------------------------------------------------------------------------
/test-data/test-example-00-e-file-invalid_issuer_url_http.smart-health-card:
--------------------------------------------------------------------------------
1 | {
2 | "verifiableCredential": [
3 | "eyJ6aXAiOiJERUYiLCJhbGciOiJFUzI1NiIsImtpZCI6IjNLZmRnLVh3UC03Z1h5eXd0VWZVQUR3QnVtRE9QS01ReC1pRUxMMTFXOXMifQ.3ZJLb9swEIT_SrC9ynoQSV3rVqdAmxyKAk17KXygqbXFgg-BpIS4gf57d2kHTYIkp5yq24rDjzND3oGOEVroUxraqooDqjJaGVKP0qS-VDJ0scJbaQeDsSLxiAEKcNsdtM17IS6WH4RYlY04L2BS0N5BOgwI7a-MjMx8int3HBY8EOplnbZ2dPqPTNq7V4XKT7prVrApQAXs0CUtzfdx-xtVYku7XoefGCJzWjgv67IhHv9dj64zyJqA0Y9B4U22D6eF4hQHlDeGaEcndEA4UEYij8b8CIYE9_vbmgT3wzPgbxSH9nOH0uIRIq02xIOPjjQh5jP2ekLHPV77nud1CZuZAm41hf8kE7Oa1UWzqJuFqGGei2fdNK-7uXpccUwyjTHH5QtPyBc0SaW0w0vfZYLynXb7bDweYkL77_n0Zln6sK-42SrqrlLTLQFU3gmiXsK8mQsYThVkOzsM6NjbwwZJ5JUaQ17isDfaHhEiB645FlW188HSe2QvUiUfGNnpOBiZ61xfnn1Gh0Gasy8-DjpJQ0VRicanr6Pd8lao89e82KD4LxsUq7ducMkLM31_AQ.Pkz3ry_PGCZGPbCLispYVcaEbqi0DVJ6H2YAj5bGdD9lzQREVndlCyNm1EEmbl_EvCB1kjSyA08a4uDQv00TVQ"
4 | ]
5 | }
--------------------------------------------------------------------------------
/test-data/test-example-00-e-file-issuer_url_with_trailing_slash.smart-health-card:
--------------------------------------------------------------------------------
1 | {
2 | "verifiableCredential": [
3 | "eyJ6aXAiOiJERUYiLCJhbGciOiJFUzI1NiIsImtpZCI6IjNLZmRnLVh3UC03Z1h5eXd0VWZVQUR3QnVtRE9QS01ReC1pRUxMMTFXOXMifQ.3ZJLb9swEIT_SrC9ypKoNHGtW50ASXsoCjTNpfCBptYWCz6EJSXEDfTfu6Qd9IEkp57K24rDjzNDPYIOAVroYxxCW1VhQFUGKyn2KE3sSyWpCxU-SDsYDBWrR6QKCnDbHbTismkulu8acVmK8wImBe0jxMOA0H77xfwb9-Y4LNLApJd12trR6R8yau9eFSo_6U6sYFOAIuzQRS3Nl3H7HVVMlna9pnukkDgtvC3rUjAvfV2PrjOYNITBj6TwLtuH00ZxigPKG8O0oxO-gA6ckcmjMV_JsODpfFuz4Gl4BvyZ4_D5VKG0eIRIqw3z4L1jDYV8x15P6FKPH32f5nUJm5kDbjWHv5YxscTqQixqsWhqmOfiWTfidTcf_qw4RBnHkOOmB4-YHmiSSmmHV77LBOU77fbZeDiEiPb0__DL9GZZetpXqdkq6K5S0wMDVD4JTb2EeTMXMJwqyHZ2SOiSt98bZJFXaqS8lcLeaXtENDlwnWJxVTtPFil7kSp6SshOh8HIXOf66uwGHZI0Z7c-DDpKw0VxicbHT6PdpqNQ5yVebLD5LxtsVv-6wWXamHn9BA.6eW7Pyvc42ozgCmGbPCTTOKreEyESKho_ChGJW_Z-HHA28HWG2e-7fOzcD_6u_BRS_R04cYL0j1tgmmZom5zaw"
4 | ]
5 | }
--------------------------------------------------------------------------------
/test-data/test-example-00-e-file-jws_too_long.smart-health-card:
--------------------------------------------------------------------------------
1 | {
2 | "verifiableCredential": [
3 | "eyJ6aXAiOiJERUYiLCJhbGciOiJFUzI1NiIsImtpZCI6IjNLZmRnLVh3UC03Z1h5eXd0VWZVQUR3QnVtRE9QS01ReC1pRUxMMTFXOXMifQ.3VRbb6M4GP0rI_c1TbikgeRpQ9LpNNvcRNJOZlUhxxhsMJC1DYSO8t_XJs3srDSptA_7sgYJ2T4-Pud8Nt8BFQKMAJHyIEa9nsgglwRDJkkXQR6KHj7C7MCw6ClgiTnoAAolGJkDsz_oO_2B0x1YVgdUCIy-g99QkUt8VPN__KCs67pb292Cxz3LMN0e4jjEuaSQiV5lgtcOkM0B6xXPmNOIwj3Dkx8Ytd9VbTc1L_L49jx0q4c-RNMsK3P6BiUt8g-BqKhoaA61tL_F-uU-wUhqlxGhXGkVmmcE-l2jayo-PeqVeciwxnAsipIjvGm9gfeJi1eACsYU21mJ2oA3KgDFXDK25UwBLutHhgJcOr8gXik7ar0C5TDDZxKYUab4wDhXGC7aPWJa4VyHPCuI7ntd8HpSBmOch6qqI5DBVt-eqjCmUGpuc3hn3hrmrWWA06nzS3Xmx-oe_xm5kFCWorWvz5TEumAVRIjmeFKELQMqQprHrRHRCImz99OpKkWY0x4jnXRP0LCHqqMiQO1KYBkOOL2eOuDwHkkrJ8Ic51rbz4kqUIFQydspbXZDszOF1Ro2tK0Dp-pkNP67N8lL3AGsQGcz18htTc4KuSizfZvrUyE_3RhtM6_GaP0vY7SG_0mMztUY7Y9jfLrserksYOxNPq0I5BlEzVXW_r9l3RAqAvXCoMK8CVhxaXkcaEiAjwhjXZ9A_XgCU92zACkVEEl1XQNGMyqDqOCBupuqKGEwe_GDBSWlcSCPKXFdWyQpS5PoJk2ICCOX2Gnih6oTuXGqPmFczfhd9Dax-95qNZ9Gc7JsUOjf2_fZ8c2fMQH73ng6drKHceKxOmGDyHJ3S-KYxWLhht_u7tcQfVlXokqwb7PZtDT77E_6_DBh5m5mrIW1eYYvd1-304UfOQcrcuZNY3nNNzN52zrrrSwnD5-bXWKbS_Flvfg93u9QRMXjSzGvpuvN08PWFSlJiTbxOa1JVDeOerzH5dbaLD2H7MnQjfOhO7TdJI-HbmIP8zjZ3u-iNXuiz5XhVaval9ncHwyrZep643GqCvh6Uu0v.WZZrR7E2e3pZgovfID3UdQoUeY7kQSpDsw_VrUJIqlIe4Ocs-ytVi-S3NY5ZQ9kmgrRmIA-aKLGu3UKvfNvtFA"
4 | ]
5 | }
--------------------------------------------------------------------------------
/test-data/test-example-00-e-file-multi-jws-issues.smart-health-card:
--------------------------------------------------------------------------------
1 | {
2 | "verifiableCredential": [
3 | "eyJ6aXAiOiJERUYiLCJraWQiOiIzS2ZkZy1Yd1AtN2dYeXl3dFVmVUFEd0J1bURPUEtNUXgtaUVMTDExVzlzIn0.3ZJLb9swEIT_SrC9yhIlNFGsW50CfRyKAk17CXygqbXFgg-BpIS4gf57d2kHfSDJqafqtuLw48yQD6BjhA6GlMbYVVUcUZXRypAGlCYNpZKhjxXeSzsajBWpJwxQgNvtoauvmuayvRZXbSmu1wXMCroHSMcRobv7xfwb9-o0rHgg1PM6be3k9A-ZtHcvCpWfdV-vYVuACtijS1qaL9PuO6rElvaDDt8wROZ08LoUZU08_ruZXG-QNQGjn4LC22wfzgvFOQ4obwzRTk7ogHCkjESejPkaDAke93eCBI_DE-DPFIf2c4fS4gkirTbEgzeONCHmMw56Rsc9fvQDz5sStgsF3GkK_1YmZtXry3ol6lUjYFmKJ93UL7v58GfFMck0xRyXLzwhX9AsldIOb3yfCcr32h2y8XiMCe35_dDNDKYtfThU3GwVdV-p-Z4AKu-ERrSwbJcCxnMF2c4eAzr29nuDJPJKTSEvcdhbbU-IJgcWHIuq2vtg6T2yF6mSD4zsdRyNzHVubi7eocMgzcV7H0edpKGiqETj06fJ7ngriPzVzzbY_JcNNut_3WDLCwt9PwE.9ricS3s_xR1fl7YndWq5q0mc4-VeFBJNWpsaJULhccl8QIUnwWxtXc8Ps0C-vU-w_vcsoTnRggW_dex7afcj5w",
4 | "eyJ6aXAiOiJERUYiLCJhbGciOiJFUzI1NiIsImtpZCI6IjNLZmRnLVh3UC03Z1h5eXd0VWZVQUR3QnVtRE9QS01ReC1pRUxMMTFXOXMifQ.3ZJLj9MwFIX_yuiyTZM4UEKzo4PEY4GQGNigLlzntjHyI7KdaMoo_5173Y54aGZWrMjuxsefzzn2HegYoYMhpTF2VRVHVGW0MqQBpUlDqWToY4W30o4GY0XqCQMU4PYH6MTLplm3r9r181K0BcwKujtIpxGh-_YL-Tft2XlY8UCkx3Xa2snpHzJp754UKj_rXmxgV4AK2KNLWprP0_47qsSWDoMOXzFE5nTwoqxLQTz-u51cb5A1AaOfgsKbbB8uC8UlDihvDNHOTuiAcKKMRJ6M-RIMCe73dzUJ7ocHwJ8oDu3nCqXFM0RabYgHrx1pQsxnHPWMjnv84AeetyXsFgq41xT-jUzMEpu1WNVi1dSwLMWDbsTTbt7_WXFMMk0xx-X7TsgXNEultMNr32eC8r12x2w8nmJCe3k-dDODaUsfjhU3W0XdV2q-JYDKO6GpW1h2SwHjpYJs54ABHXv7vUESeaWmkJc47I22Z0STA9cci6o6-GDpObIXqZIPjOx1HI3MdW6vr96iwyDN1TsfR52koaKoROPTx8nueSvU-ROPNtj8lw02m3_dYMsLC30_AQ.drW2nyE3vROTNI4SpQmIb2P1gp5jGRDqr_cnwZGmsZ3-Yl7WfpEO2lll_WrjjYO0IpDtFxkksyKIt3O3R7yvJA"
5 | ]
6 | }
--------------------------------------------------------------------------------
/test-data/test-example-00-e-file-multi-jws.smart-health-card:
--------------------------------------------------------------------------------
1 | {
2 | "verifiableCredential": [
3 | "eyJ6aXAiOiJERUYiLCJhbGciOiJFUzI1NiIsImtpZCI6IjNLZmRnLVh3UC03Z1h5eXd0VWZVQUR3QnVtRE9QS01ReC1pRUxMMTFXOXMifQ.3ZJJb9swEIX_SjC9ytqaxJVudQp0ORQFmvZS-EBTY4sFF4GLEDfQf-8M7aALkpx6qm4jPn5875H3oEKAHsYYp9BXVZhQlsEIH0cUOo6lFH4IFd4JM2kMFakTeijA7vbQN9dte7W-ftm9Krv2soBZQn8P8Tgh9N9-Mf_GvTgNKx4I9bROGZOs-iGicvZZoXSzGpoOtgVIjwPaqIT-nHbfUUa2tB-V_4o-MKeHy7IuG-Lx302yg0bWeAwueYm32T6cF4pzHJBOa6KdnNAB_kgZiZy0_uI1CR729zUJHoZHwJ8oDu3nDoXBE0QYpYkHry1pfMhnHNSMlnv84EaeNyVsFwq4UxT-jYjMarqrZlU3q7aGZSkeddM87-b9nxWHKGIKOS5feES-oFlIqSzeuCETpBuUPWTj4RgimvP7oZsZ9bp0_lBxs1VQQyXnOwLIvBPaeg3LdilgOleQ7ezRo2VvvzdIIidl8nmJw94qc0K0OXDNsaiqvfOG3iN7ETI6z8hBhUmLXOfm5uItWvRCX7xzYVJRaCqKStQufkxmx1uhzl_zZIPtf9lg2_3rBte8sND3Ew.EtHJLQTEwQ1Fq0XwZ7WhU1EXNkpRrcSdUTyL0n_8bfRZ2lmrlG30zffy22j4gD3Xb2e1d7I_08ZKCZFF3D2bZw",
4 | "eyJ6aXAiOiJERUYiLCJhbGciOiJFUzI1NiIsImtpZCI6IkVCS09yNzJRUURjVEJVdVZ6QXprZkJUR2V3MFpBMTZHdVd0eTY0blMtc3cifQ.3ZJJb9swEIX_SjC9ytraOrZujQt0ORQFmuZS-EBTY4sFF4GLEDfQf-8M7aBtkOSUU3Wj-Obje4-8AxUCdDDEOIauqsKIsgxG-Dig0HEopfB9qPBWmFFjqEid0EMBdreHrlm27dvL5ev1qlzVTQGThO4O4nFE6H78YT7EvTotFrwg1NM6ZUyy6peIytlnhdJNqm_WsC1AeuzRRiX0t7T7iTKypf2g_A36wJwO3pR12RCP_14l22tkjcfgkpd4ne3DeaM4xwHptCbayQkd4I-UkchJ6-9ek-B-vqtJcL94BPyV4tA8dygMniDCKE08eGdJ40M-46AmtNzjZ2HZx6aE7UwBd4rCvxeRWc162SzqZtHWMM_Fo26a5918-rfiEEVMIcflC4_IFzQJKZXFjeszQbpe2UM2Ho4hojm_H7qZQV-Wzh8qbrYKqq_kdEsAmSehrVcwb-cCxnMF2c4ePVr29neDJHJSJp-3OOy1MidEmwPXHIuq2jtv6D2yFyGj84zsVRi1yHVebS4-oEUv9MVHF0YVhaaiqETt4pdkdjwKdf7aJxts_8sG2_VLN7jijZm-3w.Ma9Hatts9reee7DA7Sj8rfcIkH816fI1LkFSXj3s1aT6tdGmDiveDE2yNqi7ZHHKMViFInas_37Hi6mMrQW4BA"
5 | ]
6 | }
--------------------------------------------------------------------------------
/test-data/test-example-00-e-file-trailing_chars.smart-health-card:
--------------------------------------------------------------------------------
1 |
2 | {
3 | "verifiableCredential": [
4 | "eyJ6aXAiOiJERUYiLCJhbGciOiJFUzI1NiIsImtpZCI6IjNLZmRnLVh3UC03Z1h5eXd0VWZVQUR3QnVtRE9QS01ReC1pRUxMMTFXOXMifQ.3ZJLj9MwFIX_yuiyTZM4UEKzo4PEY4GQGNigLlzntjHyI7KdaMoo_5173Y54aGZWrMjuxsefzzn2HegYoYMhpTF2VRVHVGW0MqQBpUlDqWToY4W30o4GY0XqCQMU4PYH6MTLplm3r9r181K0BcwKujtIpxGh-_YL-Tft2XlY8UCkx3Xa2snpHzJp754UKj_rXmxgV4AK2KNLWprP0_47qsSWDoMOXzFE5nTwoqxLQTz-u51cb5A1AaOfgsKbbB8uC8UlDihvDNHOTuiAcKKMRJ6M-RIMCe73dzUJ7ocHwJ8oDu3nCqXFM0RabYgHrx1pQsxnHPWMjnv84AeetyXsFgq41xT-jUzMEpu1WNVi1dSwLMWDbsTTbt7_WXFMMk0xx-X7TsgXNEultMNr32eC8r12x2w8nmJCe3k-dDODaUsfjhU3W0XdV2q-JYDKO6GpW1h2SwHjpYJs54ABHXv7vUESeaWmkJc47I22Z0STA9cci6o6-GDpObIXqZIPjOx1HI3MdW6vr96iwyDN1TsfR52koaKoROPTx8nueSvU-ROPNtj8lw02m3_dYMsLC30_AQ.drW2nyE3vROTNI4SpQmIb2P1gp5jGRDqr_cnwZGmsZ3-Yl7WfpEO2lll_WrjjYO0IpDtFxkksyKIt3O3R7yvJA"
5 | ]
6 | }
7 |
--------------------------------------------------------------------------------
/test-data/test-example-00-e-file.wrong-extension:
--------------------------------------------------------------------------------
1 | {
2 | "verifiableCredential": [
3 | "eyJ6aXAiOiJERUYiLCJhbGciOiJFUzI1NiIsImtpZCI6IjNLZmRnLVh3UC03Z1h5eXd0VWZVQUR3QnVtRE9QS01ReC1pRUxMMTFXOXMifQ.3ZJJb9swEIX_SjC9ytqaxJVudQp0ORQFmvZS-EBTY4sFF4GLEDfQf-8M7aALkpx6qm4jPn5875H3oEKAHsYYp9BXVZhQlsEIH0cUOo6lFH4IFd4JM2kMFakTeijA7vbQN9dte7W-ftm9Krv2soBZQn8P8Tgh9N9-Mf_GvTgNKx4I9bROGZOs-iGicvZZoXSzGpoOtgVIjwPaqIT-nHbfUUa2tB-V_4o-MKeHy7IuG-Lx302yg0bWeAwueYm32T6cF4pzHJBOa6KdnNAB_kgZiZy0_uI1CR729zUJHoZHwJ8oDu3nDoXBE0QYpYkHry1pfMhnHNSMlnv84EaeNyVsFwq4UxT-jYjMarqrZlU3q7aGZSkeddM87-b9nxWHKGIKOS5feES-oFlIqSzeuCETpBuUPWTj4RgimvP7oZsZ9bp0_lBxs1VQQyXnOwLIvBPaeg3LdilgOleQ7ezRo2VvvzdIIidl8nmJw94qc0K0OXDNsaiqvfOG3iN7ETI6z8hBhUmLXOfm5uItWvRCX7xzYVJRaCqKStQufkxmx1uhzl_zZIPtf9lg2_3rBte8sND3Ew.EtHJLQTEwQ1Fq0XwZ7WhU1EXNkpRrcSdUTyL0n_8bfRZ2lmrlG30zffy22j4gD3Xb2e1d7I_08ZKCZFF3D2bZw"
4 | ]
5 | }
--------------------------------------------------------------------------------
/test-data/test-example-00-f-qr-code-numeric-value-0-odd-count.txt:
--------------------------------------------------------------------------------
1 | shc:/67629095243206034602924374044603122295953265460346029254077280433602870286471674522280928613331456437653141590640220306450459085643550341424541364037063665417137241236380304375622046737407532323925433443326057360106452931531270742428395038692212766728660427527042080322573776302062041022437658685343255858002167283807585708105505622752282407670809680507692361773323356626342441696640756760420443377667210963225304674530596075400038617044612140293774753658337057662140695453717052692609314157047066212936577024093936587120504354425034740728273663064352427127670650296731041041526111672372755841032130642227316463677366061065095838427769033473772024296539747172763158437500341205552904210458383257587430101033127222744063776058732325243477725920113029325929083334451032223707067150422927585643582150673960036577724025701136525340592769757767206275650627402477697211533573565509427029706707250839003554763240717063642937600341397477744331106637691073081227572532546203755976433177745943122062635528341006764322546706055905771143603022560663095523331226455500652270723362680968083803763221413307293953052656395443322574687627443426332275717711532929254352587508605435565206712633236374775326666866323563710761560824680054232839705721762577651272106420776632037175111227273638376668606266033565034510450906366703505453432108691270703365110974534373232339127570013542650411585366432827590028706105672459077525712221726061360466106934602226403158625341200570210644745059203758773734373940117244687075123404571224453168276435523552346420
--------------------------------------------------------------------------------
/test-data/test-example-00-f-qr-code-numeric-value-0-qr_chunk_too_small.txt:
--------------------------------------------------------------------------------
1 | shc:/1/17/56762909524320603460292437404460312229595326546034602925407728043360287028647167452228092861
--------------------------------------------------------------------------------
/test-data/test-example-00-f-qr-code-numeric-value-0-trailing_chars.txt:
--------------------------------------------------------------------------------
1 |
2 | shc:/56762909524320603460292437404460312229595326546034602925407728043360287028647167452228092861333145643765314159064022030645045908564355034142454136403706366541713724123638030437562204673740753232392543344332605736010645293161123274252843507672607639453207402430776607352444072636263360583163776571612776281030555232666650080410064408075226454269326172757056577777650527565844664432596739250541374127412642033268362167406323684239664407420603660726440343682236324007354427093239316763640669126904110430032154743072617128677526590050443100395771054363441140226275064352057065672777296710080740306150694364755841072030053033314267693503500710687038422366323443772524086539746668753136397700720804545308200420523457587030535321117222114063236059732333273439726020543030323729093200372832225610065577402910665427742911662372066522684325320337525344582769750467367075652735423261657311072056567176437025586807047539006140773224677204423341600455387431324223537039395371105042432532326203757500431039705843332472637132336906055622116904057505741165642922560662005523342352407057615940064203435541056800294423303409266742045905387427616744297008072021274373107340243856524264622954071028050545033839201254546009660900262367345328436845283561347504272806325542097369120960747623330439705737080562665230663734353975116572563873400037343533716111637403056406505544327031220603502036015569420565762406733734393328073867366428530535045867086126372368695054657445266470450600446310425767243405636363504269616144340328672371257562627076302871063406371076732920
3 |
--------------------------------------------------------------------------------
/test-data/test-example-00-f-qr-code-numeric-value-0-wrong-multi-chunk.txt:
--------------------------------------------------------------------------------
1 | shc:/1/1/56762909524320603460292437404460312229595326546034602925407728043360287028647167452228092861333145643765314159064022030645045908564355034142454136403706366541713724123638030437562204673740753232392543344332605736010645292953127074242843503861221276716852752941725536670334373625647345380024213944077025250726312423573657001132105220316267750968640761356508111008270666243020277044446712214341455936637024282703544034660963252707282555072932056232255262395660612010735336331255715610420057716412306973057066214536651135113958591233120032575026733958333075072812533734264534700060266054734545664338772667663471584128617435526828390065275357404052057121004150076600323056277610287226003175060305765803534256207472564464060539095425076777272921345209305565332021506258456045760350722804223710051277402927664527742911662372066523664321240336446744622769760467573259652733383263657311072452563376417025746807407539006144613252696869456340066810522645386256555532111000531265754227302628303438085756243800662563286838775672222439672172403542396107375860647335106645704512536703506321757004413636764365347431287321355256580631556063583463563610567737660541737377552828605563116564297412076854033003344323337052606873573426066033102439280977115921594064314334576408722871427337224310757744412937522268303871367257627564750472597763507745283571571263580550066921715611703323062474012471272931363924743604256803437445104259400424433362673769543855403976310365501153573745056364696326060377575776050561075823064353055604551028500311453022452525062305534574
--------------------------------------------------------------------------------
/test-data/test-example-00-f-qr-code-numeric-value-0-wrong_qr_header.txt:
--------------------------------------------------------------------------------
1 | shc:5676290952432060346029243740446031222959532654603460292540772804336028702864716745222809286133314564376531415906402203064504590856435503414245413640370636654171372412363803043756220467374075323239254334433260573601064529315375327525284350386543453972454105613877280341684444263630267536256610652964356275116035404032045008041065413640042753256071655511572765540710122022662409262228543675554144403745376432112725206656333638722710403426123230352640292409664454221027442743433545715957316850353171637655337441322469662760285437665773006450620610700475423521206829550476675962044011376353347322684253413300704425342012336061614069663105651020054162381071210042506620063209562573424540321150697134717157282666502129385075317172270303297560583538524005036675320974211166280826390463001229702761506807647456357423355877755227120630247456283628667739750729036361365008613105520327303527120620111068247740742171076922737556374254066866636540775230714445093145120303691073081126572528446844366610312575093731055838406068310409103521346309455757455623602460345303577259642169037065551243062674414125502909450720327200247163102273296231262411414523701012266145051232263856386239230773545558104544092833585672343745417143355603277162310329260875654568772168625671544308505566244073123364712209343036633337413029051141327642120730555709522575717050117026051242505365232922773312737420012075102069530473325444060934396161087528117767647736761003552752603668743308280767362544093375773323642760336531742353673463036325683371600931526911421206656555650368253520
--------------------------------------------------------------------------------
/test-data/test-example-00-f-qr-code-numeric-value-1-qr_chunk_too_small.txt:
--------------------------------------------------------------------------------
1 | shc:/2/17/33314564376531415906402203064504590856435503414245413640370636654171372412363803043756220467
--------------------------------------------------------------------------------
/test-data/test-example-00-f-qr-code-numeric-value-10-qr_chunk_too_small.txt:
--------------------------------------------------------------------------------
1 | shc:/11/17/57573366640742533606774323776767656545775255503074083775213776433110746027752162082138425375
--------------------------------------------------------------------------------
/test-data/test-example-00-f-qr-code-numeric-value-11-qr_chunk_too_small.txt:
--------------------------------------------------------------------------------
1 | shc:/12/17/03573845280476721077115323284036036750552333773566455665117372296468092309386210062129210829
--------------------------------------------------------------------------------
/test-data/test-example-00-f-qr-code-numeric-value-12-qr_chunk_too_small.txt:
--------------------------------------------------------------------------------
1 | shc:/13/17/10390424725333433221076860235305522527761210005367212439706962117530277341436460265977072967
--------------------------------------------------------------------------------
/test-data/test-example-00-f-qr-code-numeric-value-13-qr_chunk_too_small.txt:
--------------------------------------------------------------------------------
1 | shc:/14/17/61404140100874051237504460452738566253033066755208777343630539415212243057065358746860580325
--------------------------------------------------------------------------------
/test-data/test-example-00-f-qr-code-numeric-value-14-qr_chunk_too_small.txt:
--------------------------------------------------------------------------------
1 | shc:/15/17/40406352595650293135636941236569066405745745333371607243697321293850321235032601210325106311
--------------------------------------------------------------------------------
/test-data/test-example-00-f-qr-code-numeric-value-15-qr_chunk_too_small.txt:
--------------------------------------------------------------------------------
1 | shc:/16/17/52210424452631412745323259212304391171732475264524382864546159063639416875616865342671676169
--------------------------------------------------------------------------------
/test-data/test-example-00-f-qr-code-numeric-value-16-qr_chunk_too_small.txt:
--------------------------------------------------------------------------------
1 | shc:/17/17/50523942452677533810535343690705207161576722213577401275766409666758
--------------------------------------------------------------------------------
/test-data/test-example-00-f-qr-code-numeric-value-2-qr_chunk_too_small.txt:
--------------------------------------------------------------------------------
1 | shc:/3/17/37407532323925433443326057360106452929531270742428435038612212767168360469257255362862105224
--------------------------------------------------------------------------------
/test-data/test-example-00-f-qr-code-numeric-value-3-qr_chunk_too_small.txt:
--------------------------------------------------------------------------------
1 | shc:/4/17/66033138437420565226637070722059545931602150657165522055556234384040063653115727615607121120
--------------------------------------------------------------------------------
/test-data/test-example-00-f-qr-code-numeric-value-4-qr_chunk_too_small.txt:
--------------------------------------------------------------------------------
1 | shc:/5/17/21402255232324342852726870302870587526002360580327246667572112683521566425256168246055032432
--------------------------------------------------------------------------------
/test-data/test-example-00-f-qr-code-numeric-value-5-qr_chunk_too_small.txt:
--------------------------------------------------------------------------------
1 | shc:/6/17/21556972236973653671595733096505103134730966662129367354201139206055275550643550610659052721
--------------------------------------------------------------------------------
/test-data/test-example-00-f-qr-code-numeric-value-6-qr_chunk_too_small.txt:
--------------------------------------------------------------------------------
1 | shc:/7/17/36002456630965612463425037293734577260403167291254033033584128617706526828390063694450404052
--------------------------------------------------------------------------------
/test-data/test-example-00-f-qr-code-numeric-value-7-qr_chunk_too_small.txt:
--------------------------------------------------------------------------------
1 | shc:/8/17/05712172405007240032305623111028722600317506064276734053425620747256446406053909542566673927
--------------------------------------------------------------------------------
/test-data/test-example-00-f-qr-code-numeric-value-8-qr_chunk_too_small.txt:
--------------------------------------------------------------------------------
1 | shc:/9/17/29213452092855655520215062204560457603507207042237100655774029276654657425116723720665236643
--------------------------------------------------------------------------------
/test-data/test-example-00-f-qr-code-numeric-value-9-qr_chunk_too_small.txt:
--------------------------------------------------------------------------------
1 | shc:/10/17/21280336446744622727760467573259651033422463657311102052560476417045586807413739003862376440
--------------------------------------------------------------------------------
/test-data/test-example-00-fhirhealthcard.json:
--------------------------------------------------------------------------------
1 | {
2 | "resourceType": "Parameters",
3 | "parameter":[{
4 | "name": "verifiableCredential",
5 | "valueString": "eyJ6aXAiOiJERUYiLCJhbGciOiJFUzI1NiIsImtpZCI6IjNLZmRnLVh3UC03Z1h5eXd0VWZVQUR3QnVtRE9QS01ReC1pRUxMMTFXOXMifQ.3ZJLb9swEIT_SrC9ynohjSDd6hTI41AUaNpL4QNNrS0WfAgkJcQN9N-7SztIWyQ55RTdVhx-nBnyAVQI0MEQ4xi6oggjyjwY4eOAQschl8L3ocB7YUaNoSD1hB4ysNsddNVFXV-0ZX3e5G3TZjBL6B4gHkaE7ucT83_ch-Ow4oFQL-uUMZNVv0VUzr4qlG5WfdXCJgPpsUcbldDfpu0vlJEt7Qblf6APzOngPC_zinj8dz3ZXiNrPAY3eYl3yT6cFrJTHJBOa6IdndAB_kAZiTxp_d1rEjzu70oSPA7PgL9SHNrPHQqDR4gwShMPPlnS-JDO2KsZLfd46wae1zlsFgq4VRT-s4jMqtqP1aqsVnUJy5I966Z63c3NvxWHKOIUUly-8Ih8QbOQUlm8dH0iSNcru0_GwyFENKf3Qzcz6CZ3fl9ws0VQfSHnewLItBPqsoFls2QwnipIdnbo0bK3vxskkZNy8mmJw94pc0TUKXDJsaiqnfOG3iN7ETI6z8hehVGLVOf68uwKLXqhz65dGFUUmoqiErWLXyaz5a1Qpq96scH6XTZYt2_dYMMLC31_AA.CdIxK-awV5j6TbhbYtQ3YA9toe9kfRNvPTL72JlkXD7DXuaNKkTYMKvLv8gVdR_h7YFf5gzOZeWPi69wMLDuCA"
6 | }]
7 | }
--------------------------------------------------------------------------------
/test-data/test-example-00-g-qr-code-0-bad_qr_version.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ongov/OpenVerify/7fd2bebb1af61456f858bbc1b38917fbf8234553/test-data/test-example-00-g-qr-code-0-bad_qr_version.png
--------------------------------------------------------------------------------
/test-data/test-example-00-g-qr-code-0-corrupted.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ongov/OpenVerify/7fd2bebb1af61456f858bbc1b38917fbf8234553/test-data/test-example-00-g-qr-code-0-corrupted.png
--------------------------------------------------------------------------------
/test-data/test-example-00-g-qr-code-0-qr_chunk_too_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ongov/OpenVerify/7fd2bebb1af61456f858bbc1b38917fbf8234553/test-data/test-example-00-g-qr-code-0-qr_chunk_too_small.png
--------------------------------------------------------------------------------
/test-data/test-example-00-g-qr-code-0-single_qr_segment.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ongov/OpenVerify/7fd2bebb1af61456f858bbc1b38917fbf8234553/test-data/test-example-00-g-qr-code-0-single_qr_segment.png
--------------------------------------------------------------------------------
/test-data/test-example-00-g-qr-code-0-too_many_qr_segment.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ongov/OpenVerify/7fd2bebb1af61456f858bbc1b38917fbf8234553/test-data/test-example-00-g-qr-code-0-too_many_qr_segment.png
--------------------------------------------------------------------------------
/test-data/test-example-00-g-qr-code-1-qr_chunk_too_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ongov/OpenVerify/7fd2bebb1af61456f858bbc1b38917fbf8234553/test-data/test-example-00-g-qr-code-1-qr_chunk_too_small.png
--------------------------------------------------------------------------------
/test-data/test-example-00-g-qr-code-inflated-to-v22.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ongov/OpenVerify/7fd2bebb1af61456f858bbc1b38917fbf8234553/test-data/test-example-00-g-qr-code-inflated-to-v22.png
--------------------------------------------------------------------------------
/test-data/test-invalid-jws-payload.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ongov/OpenVerify/7fd2bebb1af61456f858bbc1b38917fbf8234553/test-data/test-invalid-jws-payload.png
--------------------------------------------------------------------------------
/test-data/test-issuers.json:
--------------------------------------------------------------------------------
1 | {
2 | "participating_issuers": [
3 | {
4 | "iss": "https://spec.smarthealth.cards/examples/issuer",
5 | "name": "SMART Health Card specification example issuer"
6 | }
7 | ]
8 | }
9 |
--------------------------------------------------------------------------------
/test-data/valid_key.json:
--------------------------------------------------------------------------------
1 | {"keys":[{"kty":"EC","kid":"wXnE30rKv9vfaP-q_A18Mdh45GvxnCyBmvkldEf584g","use":"sig","alg":"ES256","crv":"P-256","x":"VE1AThGRVudJGJYxe3330jTHLcqQgP44WVFymYvaGaw","y":"mnseemWFh1EjliwCetIyO9tleUPDk_oIxS29NIJOQgQ"}]}
--------------------------------------------------------------------------------
/test-data/valid_keys.json:
--------------------------------------------------------------------------------
1 | {"keys":[{"kty":"EC","kid":"Qfjo1OC05q1qXWbiiE2D4hkPlEqaJd5qdH4K4b9h97c","use":"sig","alg":"ES256","crv":"P-256","x":"5FJFDayDc-L2qfhh88hoLnUGuOh40NHjOZqqf8cxAKI","y":"-FMxeQtP8_EQBDev_AOmXpX9rJSw3sQWnw0P8XyNQRk"},{"kty":"EC","kid":"Ym-X9Xmsh1jNTDziB_5abLvRH8fIEURXAWisVC2sPpc","use":"sig","alg":"ES256","crv":"P-256","x":"GTIiMO8A9t6FoJDVD-malbKydh2NRn_GxI-77vohDbI","y":"5yGFaBMo6t9QFCZquKEunTy3QXNFu90o1_PNkFVxdB0"},{"kty":"EC","kid":"51VtwbXpEmvmuJqTdaXIQ3UarQ33LLer8mQradarYWM","use":"sig","alg":"ES256","crv":"P-256","x":"5fjwitvt7DY7j1xwjywUIOQpAsRBdhHgcUvAO4WUGaI","y":"iGHF6R1YZUrbzsSmtrC25UGH7V8Dqaz-tg-9rvNpBjk"}]}
--------------------------------------------------------------------------------
/test-data/wrong_alg_key.json:
--------------------------------------------------------------------------------
1 | {"keys":[{"kty":"EC","kid":"Nl_oM2xt7AiBtmib0VUVTMxuG_IwP4Bl0Sjg5tWHGqE","use":"sig","alg":"ES256K","crv":"P-256","x":"OvVpwfMToycI8jsY5tSsLqYlcCoNIVelUD3mscDoXnk","y":"poflcGsnhcBktiQXC9HM5uVBJL4picDYfeig6tCm1_Y"}]}
--------------------------------------------------------------------------------
/test-data/wrong_curve_key.json:
--------------------------------------------------------------------------------
1 | {"keys":[{"kty":"EC","kid":"pvmz3nHw7BcVMpU_6bwWaFPQppQwveRjSa3nvn2QjNA","use":"sig","alg":"ES384","crv":"P-384","x":"RmRqlnGi5o9av4VvMc3YkRpJtwyohX_MWF7SuN8zhcACJvBHTbF5spNYlGDbpFge","y":"pfWy8oXm6lU8q9RhYp2mAr6DdU8kUtiDYgJ0Fhdp8CAk7Hy3Kx24gipeelm3fj1c"}]}
--------------------------------------------------------------------------------
/test-data/wrong_kid_key.json:
--------------------------------------------------------------------------------
1 | {"keys":[{"kty":"EC","kid":"ThisIsNotTheThumbprintOfTheKey","use":"sig","alg":"ES256","crv":"P-256","x":"kOzbAF6ArH1BLM7MhOIEH4NiEqsrySkkrql56G_iyAA","y":"9f7pZkbEQu0mlpdL3B8JujJBVtjFW4eizxoevh8akbI"}]}
--------------------------------------------------------------------------------
/test-data/wrong_kty_key.json:
--------------------------------------------------------------------------------
1 | {"keys":[{"kty":"RSA","kid":"528CbP7VokRCO69SL1rJtuVVgaAIci3nznSRWfmE03g","e":"AQAB","n":"u_SsfG5xo9y3qpwQzg-CcbHVpIhZ26EQAz7EfxpEE4SvMoRfTg_316Cd-ghXxScL_nOGads8jCcPtI7s-egrFuVyQ_j2riiLp1zNO9-eRlXAm6YPI6a_cYPuIwGurTcP13YVu7K6DL3oGxR46_up8OsE0ch6gDGe4jIMI4GWCnNBxBa9oHRMGk2biIW1B-KQNmHjqoNtHPAytfOrrhKFoAjqeLssobGVBRsGi4qOgbqXQTXatIXVrApWgtx2-1ozaGlU6LU-FMUX6te8eCd2kWE4LvIvyc1Dqp2kEsWkQ86s70he7IgMIIw3bVZibBRKtU09wTm670ngPoNqXTWZqw"}]}
--------------------------------------------------------------------------------
/test-data/wrong_use_key.json:
--------------------------------------------------------------------------------
1 | {"keys":[{"kty":"EC","kid":"NDToaP8hnQaoyYmy-8z436x_edSjQhViQ9JbEUsNI_E","use":"enc","alg":"ES256","crv":"P-256","x":"5MGwuvx4Hb-ZuO8l2T_e72n1GM71l9jXyLq6lv-bn6E","y":"YbzeL_DvBr2yVIs3jKUmfxSuznCr1fTEjkeo3Y5OJEI"}]}
--------------------------------------------------------------------------------