File language verification
First Claim
Patent Images
1. A computer-implemented method of verifying that a reduced set of code adheres to a pre-defined language syntax before being stored in a smart card, the computer-implemented method comprising:
- determining if an original full-version code file complies with a pre-defined language syntax, wherein the original full-version code file is capable of executing all instructions and utilizing all features found in a full version of a programming language;
in response to determining that the original full-version code file complies with the pre-defined language syntax, creating a first cryptographic signature for the original full-version code file;
storing the first cryptographic signature on a smart card, wherein the smart card comprises a limited-capacity embedded microcontroller;
converting the original full-version code file into a reduced-version code file, wherein the reduced-version code file is capable of executing only a limited subset of instructions and features found in the full version of the programming language;
converting the reduced-version code file into a converted file, wherein the converted file is capable of utilizing all features found in the full version of the programming language, and wherein converting the reduced-version code file into the converted file is performed by a pre-conversion step, a mapping step, and a final conversion step,wherein the pre-conversion step includes;
converting the reduced-version code file into a preconverted file, wherein the preconverted file utilizes the pre-defined language syntax, andwherein the preconverted file includes a preconverted code section and a preconverted code description section, andwherein the mapping step includes;
utilizing a mapper to replace, in the preconverted file, externally defined names in the reduced-version code file with original names that are used in the full-version code file, wherein the mapper utilizes an export file that was created during the pre-conversion step, and wherein external references found in the preconverted file are resolved and converted into symbolic external reference for every class file that is referenced by the reduced-version code file, andwherein the final conversion step includes;
converting the preconverted file into the converted file by rearranging individual code sections, header sections and link information so that they comply with the pre-defined language syntax, wherein the converted file includes a converted class description and converted executable instructions that are respectively derived from the preconverted code section and the preconverted code description section in the preconverted file;
in response to determining that the converted file complies with the pre-defined language syntax, creating a second cryptographic signature for the converted file;
storing the second cryptographic signature on the smart card; and
in response to the first cryptographic signature matching the second cryptographic signature, storing the reduced-version code file on the smart card, wherein the first cryptographic signature and the second cryptographic signature match only if the original full-version code file, the reduced-version code file, the preconverted file, and the converted file all comply with the pre-defined language syntax.
1 Assignment
0 Petitions
Accused Products
Abstract
A technique for language verification of a Java® card CAP file is provided. The Java® card CAP file is converted from an original Java® code file while conserving its original Java® semantics. The Java® card CAP file is converted into a corresponding converted Java® code file that is semantically identical to the Java® card CAP file. In a language-verification step, the converted Java® code file is then verified if it has been found to comply with a predetermined language specification.
21 Citations
9 Claims
-
1. A computer-implemented method of verifying that a reduced set of code adheres to a pre-defined language syntax before being stored in a smart card, the computer-implemented method comprising:
-
determining if an original full-version code file complies with a pre-defined language syntax, wherein the original full-version code file is capable of executing all instructions and utilizing all features found in a full version of a programming language; in response to determining that the original full-version code file complies with the pre-defined language syntax, creating a first cryptographic signature for the original full-version code file; storing the first cryptographic signature on a smart card, wherein the smart card comprises a limited-capacity embedded microcontroller; converting the original full-version code file into a reduced-version code file, wherein the reduced-version code file is capable of executing only a limited subset of instructions and features found in the full version of the programming language; converting the reduced-version code file into a converted file, wherein the converted file is capable of utilizing all features found in the full version of the programming language, and wherein converting the reduced-version code file into the converted file is performed by a pre-conversion step, a mapping step, and a final conversion step, wherein the pre-conversion step includes; converting the reduced-version code file into a preconverted file, wherein the preconverted file utilizes the pre-defined language syntax, and wherein the preconverted file includes a preconverted code section and a preconverted code description section, and wherein the mapping step includes; utilizing a mapper to replace, in the preconverted file, externally defined names in the reduced-version code file with original names that are used in the full-version code file, wherein the mapper utilizes an export file that was created during the pre-conversion step, and wherein external references found in the preconverted file are resolved and converted into symbolic external reference for every class file that is referenced by the reduced-version code file, and wherein the final conversion step includes; converting the preconverted file into the converted file by rearranging individual code sections, header sections and link information so that they comply with the pre-defined language syntax, wherein the converted file includes a converted class description and converted executable instructions that are respectively derived from the preconverted code section and the preconverted code description section in the preconverted file; in response to determining that the converted file complies with the pre-defined language syntax, creating a second cryptographic signature for the converted file; storing the second cryptographic signature on the smart card; and in response to the first cryptographic signature matching the second cryptographic signature, storing the reduced-version code file on the smart card, wherein the first cryptographic signature and the second cryptographic signature match only if the original full-version code file, the reduced-version code file, the preconverted file, and the converted file all comply with the pre-defined language syntax. - View Dependent Claims (2, 3)
-
-
4. A tangible computer-readable medium on which is stored a computer program code, the computer program code comprising computer executable instructions configured for verifying that a reduced set of code adheres to a pre-defined language syntax before being loaded onto a smart card, and wherein the computer executable instructions, when executed, perform the steps of:
-
determining if an original full-version code file complies with a pre-defined language syntax, wherein the original full-version code file is capable of executing all instructions and utilizing all features found in a full version of a programming language; in response to determining that the original full-version code file compiles with the pre-defined language syntax, creating a first cryptographic signature for the original full-version code file; storing the first cryptographic signature on a smart card, wherein the smart card comprises a limited-capacity embedded microcontroller; converting the original full-version code file into a reduced-version code file, wherein the reduced-version code file is capable of executing only a limited subset of instructions and features found in the full version of the programming language; converting the reduced-version code file into a converted file, wherein the converted file is capable of utilizing all features found in the full version of the programming language, and wherein converting the reduced-version code file into the converted file is performed by a pre-conversion step, a mapping step, and a final conversion step, wherein the pre-conversion step includes; converting the reduced-version code file into a preconverted file, wherein the preconverted file utilizes the pre-defined language syntax, and wherein the preconverted file includes a preconverted code section and a preconverted code description section, and wherein the mapping step includes; utilizing a mapper to replace, in the preconverted file, externally defined names in the reduced-version code file with original names that are used in the full-version code file, wherein the mapper utilizes an export file that was created during the pre-conversion step, and wherein external references found in the preconverted file are resolved and converted into symbolic external reference for every class file that is referenced by the reduced-version code file, and wherein the final conversion step includes; converting the preconverted file into the converted file by rearranging individual code sections, header sections and link information so that they comply with the pre-defined language syntax, wherein the converted file includes a converted class description and converted executable instructions that are respectively derived from the preconverted code section and the preconverted code description section in the preconverted file; in response to determining that the converted file complies with the pre-defined language syntax, creating a second cryptographic signature for the converted file; storing the second cryptographic signature on the smart card; and in response to the first cryptographic signature matching the second cryptographic signature, storing the reduced-version code file on the smart card, wherein the first cryptographic signature and the second cryptographic signature match only if the original full-version code file, the reduced-version code file and the converted file comply with the pre-defined language syntax. - View Dependent Claims (5, 6)
-
-
7. A computer system comprising a tangible computer-readable medium on which is stored a computer program code, the computer program code comprising computer executable instructions configured for verifying that a reduced set of code adheres to a pre-defined language syntax before being loaded onto a smart card, and wherein the computer executable instructions, when executed, perform the steps of:
-
determining if an original full-version code file complies with a pre-defined language syntax, wherein the original full-version code file is capable of executing all instructions and utilizing all features found in a full version of a programming language; in response to determining that the original full-version code file complies with the pre-defined language syntax, creating a first cryptographic signature for the original full-version code file; storing the first cryptographic signature on a smart card, wherein the smart card comprises a limited-capacity embedded microcontroller; converting the original full-version code file into a reduced-version code file, wherein the reduced-version code file is capable of executing only a limited subset of instructions and features found in the full version of the programming language; converting the reduced-version code file into a converted file, wherein the converted file is capable of utilizing all features found in the full version of the programming language, and wherein converting the reduced-version code file into the converted file is performed by a pre-conversion step, a mapping step, and a final conversion step, wherein the pre-conversion step includes; converting the reduced-version code file into a preconverted file, wherein the preconverted file utilizes the pre-defined language syntax, and wherein the preconverted file includes a preconverted code section and a preconverted code description section, and wherein the mapping step includes; utilizing a mapper to replace, in the preconverted file, externally defined names in the reduced-version code file with original names that are used in the full-version code file, wherein the mapper utilizes an export file that was created during the pre-conversion step, and wherein external references found in the preconverted file are resolved and converted into symbolic external reference for every class file that is referenced by the reduced-version code file, and wherein the final conversion step includes; converting the preconverted file into the converted file by rearranging individual code sections, header sections and link information so that they comply with the pre-defined language syntax, wherein the converted file includes a converted class description and converted executable instructions that are respectively derived from the preconverted code section and the preconverted code description section in the preconverted file; in response to determining that the converted file complies with the pre-defined language syntax, creating a second cryptographic signature for the converted file; storing the second cryptographic signature on the smart card; and in response to the first cryptographic signature matching the second cryptographic signature, storing the reduced-version code file on the smart card, wherein the first cryptographic signature and the second cryptographic signature match only if the original full-version code file, the reduced-version code file and the converted file comply with the pre-defined language syntax. - View Dependent Claims (8, 9)
-
Specification