Method for the generation of personalized profile package data in integrated circuit cards
11314852 · 2022-04-26
Assignee
Inventors
Cpc classification
H04L9/0861
ELECTRICITY
H04W12/35
ELECTRICITY
G06F16/907
PHYSICS
G06F16/9035
PHYSICS
H04W8/18
ELECTRICITY
International classification
H04W8/18
ELECTRICITY
G06F16/907
PHYSICS
G06F16/9035
PHYSICS
Abstract
A method can be used for the generation of personalized Profile Package data in integrate circuit cards. A table includes data records corresponding to subscriptions to be generated. Each record includes personalization fields to store different types of personalization values. For a given subscription, a file for the Profile Package is in an ASCII format and includes fields to be personalized corresponding to one or more of the fields to store different types of personalization values. The file for the Profile Package in the ASCII format is converted into a hexadecimal code. An offset table is calculated for the given subscription indicating for each field to be personalized a corresponding offset in the hexadecimal profile. The personalization values from the personalization fields are substituted in the corresponding personalization fields to be personalized.
Claims
1. A method for the generation of personalized Profile Package data in integrated circuit cards, the method comprising: providing a table comprising a plurality of data records corresponding to a plurality of subscriptions to be generated, each record comprising a plurality of personalization fields to store different types of personalization values; providing, for a given subscription among the plurality of subscriptions, a file for the Profile Package in an ASCII format, the file comprising fields to be personalized corresponding to one or more of the fields to store different types of personalization values; converting the file for the Profile Package in the ASCII format into a hexadecimal code format file thereby obtaining a first hexadecimal profile, the hexadecimal code format file being a DER (Distinguished Encoding Rules) format; selecting personalization values from the personalization fields in the table stored in the record corresponding to the given subscription; calculating an offset table for the given subscription indicating for each field to be personalized a corresponding offset in the hexadecimal profile; and substituting the personalization values from the personalization fields in the corresponding personalization fields to be personalized including substituting the values directly in the fields to be personalized in the file in hexadecimal format at a location indicated for each personalized field by the corresponding offset in the offset table; wherein providing the file for the Profile Package in the ASCII format comprises: introducing metadata, in particular annotations, in correspondence of the fields to be personalized, the metadata including an instruction to create a row of the offset table for the corresponding personalization field; converting the file for the Profile Package in the ASCII format into a initial file in hexadecimal format and store the file in hexadecimal format as previous file in hexadecimal format; reading the file for the Profile Package in the ASCII format and find a metadata; and performing an offset calculation iterative procedure.
2. The method of claim 1, wherein performing the offset calculation iterative procedure comprises: creating a row of the offset table for the personalization field corresponding to a read annotation; modifying an initialization value contained in the field to be personalized obtaining a current modified file for the Profile Package in the ASCII format; converting the current modified file for the Profile Package in the ASCII format in a current hexadecimal file; comparing the current hexadecimal file with a previous hexadecimal file taking the position of a first difference as an offset value corresponding to the personalization field corresponding to the read annotation; writing the offset value in the offset field in the created row of the offset table; and proceeding to read the next metadata and repeating the iterative procedure.
3. The method of claim 2, further comprising, after reading the last metadata, performing an operation of substituting the values directly in the fields to be personalized in the file in hexadecimal format at the location indicated for each personalized field by the corresponding offset in the offset table.
4. The method of claim 2, wherein modifying the initialization value comprises modifying an annotated Package profile file obtained at the previous iteration and the comparing comprises comparing the hexadecimal profile obtained at the current and previous iteration.
5. The method of claim 2, wherein modifying the initialization value comprises always modifying the initial annotated Package profile file and the comparing comprises comparing the current hexadecimal profile with the initial file in hexadecimal format.
6. The method of claim 1, wherein the ASCII file contains a script in ASN.1 notation and the metadata are annotations in the line o where a customizable field occurs signaling the personalization field corresponding to the customizable field.
7. The method of claim 1, wherein the ASCII file is an ASN.1 format file and the hexadecimal code is a DER code.
8. The method of claim 1, wherein a value in a customizable field is modified by changing the first byte of the value in the customizable field.
9. A system for the personalization of integrated circuit cards, the system including a Mobile Network Operator and a Data Preparation server including a database of profiles comprising a personalization table, wherein the Data Preparation server comprises a processor and a memory storing instructions to be executed by the processor, the instructions for generating a personalized Profile Package according by performing the steps of: providing a table comprising a plurality of data records corresponding to a plurality of subscriptions to be generated, each record comprising a plurality of personalization fields to store different types of personalization values; providing, for a given subscription among the plurality of subscriptions, a file for the Profile Package in an ASCII format, the file comprising fields to be personalized corresponding to one or more of the fields to store different types of personalization values; converting the file for the Profile Package in the ASCII format into a hexadecimal code format file thereby obtaining a first hexadecimal profile, the hexadecimal code format file being a DER (Distinguished Encoding Rules) format; selecting personalization values from the personalization fields in the table stored in the record corresponding to the given subscription; calculating an offset table for the given subscription indicating for each field to be personalized a corresponding offset in the hexadecimal profile; and substituting the personalization values from the personalization fields in the corresponding fields to be personalized including substituting the values directly in the fields to be personalized in the file in hexadecimal format at a location indicated for each personalized field by the corresponding offset in the offset table; wherein providing the file for the Profile Package in the ASCII format comprises: introducing metadata, in particular annotations, in correspondence of the fields to be personalized, the metadata including an instruction to create a row of the offset table for the corresponding personalization field; converting the file for the Profile Package in the ASCII format into a initial file in hexadecimal format and store the file in hexadecimal format as previous file in hexadecimal format; reading the file for the Profile Package in the ASCII format and find a metadata; and performing an offset calculation iterative procedure.
10. The system of claim 9, further comprising a pre-processing module configured to read the ASCII file.
11. The system of claim 9, further comprising a pre-processing module configured to read the ASCII file and to perform the iterative procedure.
12. The system of claim 9, wherein performing the offset calculation iterative procedure comprises: creating a row of the offset table for the personalization field corresponding to a read annotation; modifying an initialization value contained in the field to be personalized obtaining a current modified file for the Profile Package in the ASCII format; converting the current modified file for the Profile Package in thr ASCII format in a current hexadecimal file; comparing the current hexadecimal file with a previous hexadecimal file taking the position of a first difference as an offset value corresponding to the personalization field corresponding to the read annotation; writing the offset value in the offset field in the created row of the offset table; and proceeding to read the next metadata and repeating the iterative procedure.
13. The system of claim 9, wherein system comprises a system for the personalization of erucic cards.
14. A computer-program product that can be loaded into a non-transitory memory of at least one processor and comprises portions of software code for implementing a method comprising the steps of: providing a table comprising a plurality of data records corresponding to a plurality of subscriptions to be generated, each record comprising a plurality of personalization fields to store different types of personalization values; providing, for a given subscription among the plurality of subscriptions, a file for the Profile Package in an ASCII format, the file comprising fields to be personalized corresponding to one or more of the fields to store different types of personalization values; converting the file for the Profile Package in the ASCII format into a hexadecimal code format file thereby obtaining a first hexadecimal profile, the hexadecimal code format file being a DER (Distinguished Encoding Rules) format; selecting personalization values from the personalization fields in the table stored in the record corresponding to the given subscription; calculating an offset table for the given subscription indicating for each field to be personalized a corresponding offset in the hexadecimal profile; and substituting the personalization values from the personalization fields in the corresponding fields to be personalized including substituting the values directly in the fields to be personalized in the file in hexadecimal format at the location indicated for each personalized field by the corresponding offset in the offset table; wherein providing the file for the Profile Package in the ASCII format comprises: introducing metadata, in particular annotations, in correspondence of the fields to be personalized, the metadata including an instruction to create a row of the offset table for the corresponding personalization field; converting the file for the Profile Package in the ASCII format into a initial file in hexadecimal format and store the file in hexadecimal format as previous file in hexadecimal format; reading the file for the Profile Package in the ASCII format and find a metadata; and performing an offset calculation iterative procedure.
15. The computer-program product of claim 14, wherein performing the offset calculation iterative procedure comprises: creating a row of the offset table for the personalization field corresponding to a read annotation; modifying an initialization value contained in the field to be personalized obtaining a current modified file for the Profile Package in the ASCII format; converting the current modified file for the Profile Package in the ASCII format in a current hexadecimal file; comparing the current hexadecimal file with a previous hexadecimal file taking the position of a first difference as the offset value corresponding to the personalization field corresponding to the read annotation; writing the offset value in the offset field in the created row of the offset table; and proceeding to read the next metadata and repeating the iterative procedure.
16. The computer-program product of claim 15, wherein the method further comprises, after reading the last metadata, performing an operation of substituting the values directly in the fields to be personalized in the file in hexadecimal format at the location indicated for each personalized field by the corresponding offset in the offset table.
17. The computer-program product of claim 14, wherein the ASCII file contains a script in ASN.1 notation and the metadata are annotations in the line o where a customizable field occurs signaling the personalization field corresponding to the customizable field.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) Embodiments of the present disclosure will now be described with reference to the annexed drawings, which are provided purely by way of non-limiting example and in which:
(2)
(3)
DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS
(4) In the following description, numerous specific details are given to provide a thorough understanding of embodiments. The embodiments can be practiced without one or several specific details, or with other methods, components, materials, etc. In other instances, well-known structures, materials, or operations are not shown or described in detail to avoid obscuring aspects of the embodiments.
(5) Reference throughout this specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment. Thus, the appearances of the phrases “in one embodiment” or “in an embodiment” in various places throughout this specification is not necessarily all referring to the same embodiment. Furthermore, the particular features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.
(6) The headings provided herein are for convenience only and do not interpret the scope or meaning of the embodiments.
(7) Reference to any standard is considered reference to any standard in effect at the effective filing date of this patent.
(8) Figures parts, elements or components which have already been described with reference to
(9) The solution here described substantially, with respect to the method for the generation of personalized profile package data in integrated circuit cards described with reference to
(10) Now, with reference to
(11) In
(12) Such method 200 includes, in a step 210, for a given subscription 50 writing an annotated Profile Package file 22. This is an ASCII file like the Profile Package 12 file in which the designer, in addition to writing the necessary profile elements, writes metadata N.sub.1 . . . N.sub.p in correspondence of each of the fields to be personalized F.sub.1 . . . F.sub.p, in particular in the same line after the field to be personalized. In particular the designer introduces as metadata N.sub.1 . . . N.sub.P annotations within text comments on the line where a given field to personalized F.sub.k is in located in the annotated Profile Package file 22 in order to mark the fields to personalize.
(13) The example of ASN.1 script of the Profile Package 12 described above with reference to
(14) TABLE-US-00002 TABLE 2 value02 ProfileElement ::= mf : { mf-header { mandated NULL, identification 2 }, templateID {2 23 143 1 2 1}, mf{ fileDescriptor : { lcsi ‘05’H, pinStatusTemplateDO ‘01810A’H } }, ef-iccid{ fileDescriptor : { lcsi ‘05’H, shortEFID ‘10’H }, fillFileContent : ‘980000000000000040F5’H //@ReplaceTag=T1 }, ef-dir{ fileDescriptor : { fileDescriptor ‘42210026’H, lcsi ‘05’H, efFileSize ‘98’H }, fillFileContent : ‘61184F10A0000000871002F310FFFF89080000FF50045553494D’H, //@ReplaceTag=T6 fillFileOffset : 12, fillFileContent : ‘61184F10A0000000871004F310FFFF89080000FF50044953494D’H, //@ReplaceTag=T4 fillFileOffset : 12, output of operation 115
(15) In correspondence of each field to be customized F.sub.k in the file 12, e.g. fillFileContent: ‘980000000000000040F5’, H, where ‘980000000000000040F5’ corresponds to the field to be personalized, it is introduced in the step 210 an annotation N.sub.k of the form ‘@ReplaceTag=T.sub.k’, i.e. where T.sub.k is the indication of the personalization field of the table 11a corresponding to the customizable field F.sub.k on that line, while ReplaceTag is an instruction to perform, when such annotation is found reading the annotated Profile Package file 22, an offset calculation procedure 225 that will be described in the following.
(16) The metadata N.sub.k added, in particular, the annotation, is such that it is not converted in the DER format conversion operations, i.e. adding metadata N.sub.k in ASCII file do not change the DER file obtained from such ASCII file.
(17) However, according to the solution here described, is for instance provided at the Data Preparation server 52a a pre-processing module which is configured to read the annotated Profile Package file 22 (see step 230) and to interpret the metadata N.sub.k as described in the following.
(18) Then, in a step 220 the annotated Profile Package file 22 file is converted in a DER Profile Package file 23, i.e., an hexadecimal file. The annotated Profile Package 22 file and the DER Profile Package file 23 are also stored as initial versions 22.sup.(o), 23.sup.(o) of such files 22, 23 and the DER Profile Package 23 is also stored as previous hexadecimal file 23.sup.(k−1). The superscript indicates the version number in a series of subsequently modified ASCII or DER files, as it will be clarified in the following.
(19) Then, it is performed an iterative procedure for calculating an offset table 25 for the given subscription 50, indicating for each field to be personalized F.sub.k a corresponding offset value O.sub.k in a personalized hexadecimal profile 33.
(20) Such iterative procedure includes a step of reading the annotated Profile Package 22 and finding an annotation N.sub.k. k here indicates the generic k-th annotation N.sub.k for which is performed the k-th iteration of the iterative procedure. Of course, at the first iteration the reading operation 230 find the first annotation, which is in the example N.sub.1, corresponding to the field to be personalized F.sub.1, and indicating the personalization field T.sub.1, i.e. ‘@ReplaceTag=T.sub.1’.
(21) Then in a step 240 it is created a row, i.e. a record of the offset table 25 for the personalization field T.sub.k corresponding to the read annotation N.sub.k. The row includes two fields, the label of the personalization field T.sub.k and a field for the corresponding offset value O.sub.k, as better described in the following.
(22) The offset table 25 includes two fields, as shown here below in table 1, includes two fields, one containing the indication of the personalization field T.sub.k read in the file 22 and the other for the corresponding calculated offset O.sub.k. In Table 3 is indicated after the step 240, when the first row corresponding to T.sub.1 is created.
(23) TABLE-US-00003 TABLE 3 T.sub.k O.sub.k T.sub.1
(24) Then in a step 250 the previous version 22.sup.(k−1) of the annotated Profile Package file 22 is modified. The value in the customizable field F.sub.k corresponding to the personalization field T.sub.k is modified, in particular it is changed the first byte of the value, i.e. the value of the customizable field F.sub.k, related to the annotation N.sub.k is changed. A modified, or altered, Package profile 23.sup.(k) is obtained.
(25) Then the modified Package profile 23.sup.(k) is converted in a step 260 in DER format, obtaining a modified hexadecimal Package profile 23.sup.(k).
(26) The modified hexadecimal Package profile 22.sup.(k) is compared in a step 270 with the modified hexadecimal Package profile 22.sup.(k−1) obtained at the previous iteration k−1, which has been for instance also stored.
(27) The previous modified hexadecimal Package profile 23.sup.(k−1) and the modified hexadecimal Package profile 23.sup.(k) are in general obtained by the conversion of respective ASCII Package profile file 22.sup.(k−1), 22.sup.(k), which differs only in the byte changed at step 250. Thus, the position of the first different hexadecimal code in the current modified hexadecimal Package profile 23.sup.(k) marks the position of the offset O.sub.k at which the field to be personalized Fk is. Thus it is counted the number of codes in the current modified hexadecimal Package profile 23.sup.(k) to arrive to such difference and taken as offset Ok for the personalized field T.sub.k, which is written in the offset field of the offset table 25 in the corresponding row created during the iteration k. In Table 4 it is shown the offset table 25 after step 270, with reference to the above example of the script where the first row correspond to the personalized field T.sub.1.
(28) TABLE-US-00004 TABLE 4 T.sub.k O.sub.k T.sub.1 O.sub.1
(29) Then, it is verified in a step 280 if the last annotation in the annotated Package profile file 22 was found. In the negative control returns at the beginning of the iterative procedure, continuing reading 230 the file 22 from the last annotation found. When the next annotation Nk+1 is found, steps 240-270 are performed, creating a new row in the offset table 25 for the personalized fields T.sub.k+1 and obtaining the corresponding next offset O.sub.k+1 by the modification step 250 and comparison step 270 described above.
(30) It is underlined that, in the embodiment just described, in the modify step 240 is modified the annotated Package profile file 22 obtained at the previous iteration k−1, which at the beginning is the initial annotated ASCII file 22, then at each iteration adds a modification of a byte in a field to be personalized, and in the comparison step 270 are compared the DER file obtained at the current and previous iteration, i.e. DER files 23.sup.(k) and 23.sup.(k−1).
(31) In variant embodiments however the modify step 250 can operate always on the initial annotated Package profile file 22, i.e. file 22.sup.(o). In that case in the comparison step are compared the modified file DER files 23(k) with the initial DER file 23.sup.(o) with the initial file in hexadecimal format.
(32) If in the step 280 it is verified that the last annotation in the ASCII Package Profile file 22 has been processed, the offset table 25 is completed.
(33) In Table 5 it is shown the offset table 25 after step 270, with reference to the above example of ASN.1 script where the first row corresponds to the personalized field T.sub.1.
(34) TABLE-US-00005 TABLE 5 T.sub.k O.sub.k T.sub.1 O.sub.1 T.sub.4 O.sub.4 T.sub.6 O.sub.6
(35) Then, in a step 290 it is performed an operation of substituting the personalization values in the personalization fields T.sub.1 . . . T.sub.m from the table 11a in the corresponding fields to be personalized F.sub.1 . . . F.sub.p including substituting such values directly in the fields to be personalized in the file in hexadecimal format 23, i.e. the initial DER file 23.sup.(o), at the location indicated for each personalized field T.sub.k by the corresponding offset O.sub.k in the offset table 25.
(36) In this way, the personalized values are substituted directly in the hexadecimal file at the correct offset positions, avoiding errors in the offset calculation and resulting in a faster method, with respect to the method of
(37) The described solution has thus better performances, since the association between the fields which are to be personalized within the master ASN.1 profile and the final values of the DER files does not need the calculation of all the offset index values for the DER format file, since this information is obtained by an automated procedure using annotation of ASN1 file and alteration of the same file, thus avoiding human errors and long configuration timings.
(38) Of course, without prejudice to the principle of the invention, the details of construction and the embodiments may vary widely with respect to what has been described and illustrated herein purely by way of example, without thereby departing from the scope of the present invention, as defined by the ensuing claims.