CN112084197B - Method for storing data in EMV protocol library - Google Patents

Method for storing data in EMV protocol library Download PDF

Info

Publication number
CN112084197B
CN112084197B CN202010972680.9A CN202010972680A CN112084197B CN 112084197 B CN112084197 B CN 112084197B CN 202010972680 A CN202010972680 A CN 202010972680A CN 112084197 B CN112084197 B CN 112084197B
Authority
CN
China
Prior art keywords
data
tlv data
tlv
array
type
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010972680.9A
Other languages
Chinese (zh)
Other versions
CN112084197A (en
Inventor
刘福标
祁兵
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Vanstone Electronic Beijing Co Ltd
Original Assignee
Vanstone Electronic Beijing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Vanstone Electronic Beijing Co Ltd filed Critical Vanstone Electronic Beijing Co Ltd
Priority to CN202010972680.9A priority Critical patent/CN112084197B/en
Publication of CN112084197A publication Critical patent/CN112084197A/en
Application granted granted Critical
Publication of CN112084197B publication Critical patent/CN112084197B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution

Abstract

The invention discloses a storage method of data in an EMV protocol library, which divides TLV data defined in an EMV protocol into first TLV data and second TLV data for storage respectively; the first TLV data is common TLV data or TLV data known before operation; the second TLV data is unusual TLV data or issuer-specific TLV data or unknown TLV data; a first type is defined for representing the non-variable portion of the first TLV data, a second type is defined for representing the variable portion of the first TLV data, and a third type is defined for representing the third TLV data. The advantages are that: by adopting the storage method, TLV data in the EMV protocol library can be accessed quickly, and the protocol running time is saved; the memory can be saved to the maximum extent and fragmentation of the memory can be prevented; the attributes of TLV data can be accessed using a unified code.

Description

Method for storing data in EMV protocol library
Technical Field
The invention relates to the field of data storage, in particular to a method for storing data in an EMV protocol library.
Background
With the popularization of the IC card of the bank, this requires that the POS as the main acquiring device has a capability of reading the IC card. But to be able to correctly initiate transactions of the IC card; therefore, in addition to the necessary hardware and corresponding drivers, the software on the POS must be able to properly implement the relevant protocol of the EMV protocol library. The realization software of the protocol in the EMV protocol library not only requires the correct realization of the EMV protocol, but also requires the rapid operation of the protocol software so as to ensure the improvement of the payment experience of the user; however, many POS devices have less memory, thus requiring the EMV module to occupy as little memory as possible; but there is a lot of data from the card issuer terminal itself configuration and card reading in the EMV protocol library; therefore, how to store these data becomes a key issue to be resolved by the EMV library.
Disclosure of Invention
The invention aims to provide a method for storing data in an EMV protocol library, so as to solve the problems in the prior art.
In order to achieve the above purpose, the technical scheme adopted by the invention is as follows:
the data stored in the EMV protocol library is defined by adopting a TLV format, namely TLV data; the storage method divides TLV data defined in the EMV protocol into first TLV data and second TLV data for storage respectively; the first TLV data is common TLV data or TLV data known before operation; the second TLV data is unusual TLV data or issuer-specific TLV data or unknown TLV data;
the storing of the first TLV data specifically comprises the following steps of;
defining a first type for representing an immutable portion of the first TLV data, the immutable portion of the first TLV data including a maximum length thereof, a TAG value, an attribute, a content format, and a source;
defining a second type for representing a variable portion of the first TLV data, the variable portion of the first TLV data including actual data and actual data length;
defining two ordered lists, namely a first array and a second array according to a first type and a second type, wherein each member in the first array is of the first type, each member in the second array is of the second type, and each member in the first array and the second array is arranged in ascending order according to the TAG value in TLV data;
the storing of the second TLV data specifically comprises the following steps of;
defining a third type, wherein the third type is used for representing third TLV data; defining an ordered list according to a third type, namely a third array, wherein each member of the third array is of the third type, and each member of the third array is arranged according to the time sequence of data acquisition.
Preferably, the first type comprises a member,
MaxLen; for representing the maximum possible length of the first TLV data;
tag; a specific TAG value for representing the first TLV data using an integer;
attr; representing attributes of the first TLV data using a bitmap, each bit in the bitmap representing an attribute;
fmt; a content format for representing the first TLV data using binary numbers, the content format including numerals, alphanumerics, and special characters;
src; the source for representing the first TLV data includes from the terminal, from the card, or from the issuer.
Preferably, the second type comprises a member,
DataLen; an actual data length for representing the first TLV data;
data; actual data representing the first TLV data.
Preferably, after the TLV data is stored, corresponding operations need to be performed on the TLV data, and the operations include setting and reading; the TLV data can be set and read through index and TAG value searching.
Preferably, the index is only applicable to access the first type, i.e. the permutation number of the index TLV data in the first array.
Preferably, the reading of TLV data by TAG value lookup specifically includes,
a1, searching corresponding TLV data in a first array by using a halving search method according to the TAG value of the TLV data, and if the corresponding TLV data is not found, entering a step A2; otherwise, enter step A3;
a2, sequentially searching corresponding TLV data in a third array according to the TAG value of the TLV data, and if the corresponding TLV data is not found, feeding back a searching error code; otherwise, enter step A3;
a3, returning the found data length and data of the corresponding TLV data.
Preferably, the setting of TLV data by TAG value lookup specifically includes,
b1, searching the index of the corresponding TLV data in the first array by using a halving search method according to the TAG value of the TLV data, and if the index is not found, entering a step B2; otherwise, enter step B3;
b2, checking whether the number of TLV data stored in the third array reaches the array length, and if so, returning an overflow error; otherwise, adding the new TLV data to the last of the third array, adding one to the array length of the third array, and entering a step B3;
b3, checking the source of the new TLV data, and if the source of the new TLV data is inconsistent with the source of the TLV data corresponding to the index, returning to illegal operation, and ending the setting flow; otherwise, enter step B4;
if the source of the new TLV data is a card and the TLV data is already set, checking whether the TLV data can be reset, if not, returning to illegal operation, and ending the setting flow; otherwise, enter step B5;
and B5, setting new TLV data into a second group according to the index found in the step B1, and finishing the setting of the TLV data.
The beneficial effects of the invention are as follows: 1. by adopting the storage method in the invention, TLV data in the EMV protocol library can be accessed quickly, thereby saving the protocol running time. 2. The memory can be saved to the maximum extent and fragmentation of the memory can be prevented. 3. The attributes of TLV data can be accessed using a unified code.
Drawings
FIG. 1 is a flow chart of a storage method in an embodiment of the invention.
Detailed Description
The present invention will be described in further detail with reference to the accompanying drawings, in order to make the objects, technical solutions and advantages of the present invention more apparent. It should be understood that the detailed description is presented by way of example only and is not intended to limit the invention.
The data stored in the EMV protocol library is defined by adopting a TLV format, namely TLV data; the storage method divides TLV data defined in the EMV protocol into first TLV data and second TLV data for storage respectively; the first TLV data is common TLV data or TLV data known before operation; the second TLV data is unusual TLV data or issuer-specific TLV data or unknown TLV data;
the storing of the first TLV data specifically comprises the following steps of;
defining a first type for representing an immutable portion of the first TLV data, the immutable portion of the first TLV data including a maximum length thereof, a TAG value, an attribute, a content format, and a source;
defining a second type for representing a variable portion of the first TLV data, the variable portion of the first TLV data including actual data and actual data length;
defining two ordered lists, namely a first array and a second array according to a first type and a second type, wherein each member in the first array is of the first type, each member in the second array is of the second type, and each member in the first array and the second array is arranged in ascending order according to the TAG value in TLV data;
the storing of the second TLV data specifically comprises the following steps of;
defining a third type, wherein the third type is used for representing third TLV data; defining an ordered list according to a third type, namely a third array, wherein each member of the third array is of the third type, and each member of the third array is arranged according to the time sequence of data acquisition.
In this embodiment, T in the TLV data refers to TAG, and indicates the type and content of the data; l (length) refers to the length of the data; v (Value) is the Value of the data.
In this embodiment, the first type includes a member,
MaxLen; for representing the maximum possible length of the first TLV data;
tag; a specific TAG value for representing the first TLV data using an integer;
attr; representing attributes of the first TLV data using a bitmap, each bit in the bitmap representing an attribute;
fmt; a content format for representing the first TLV data using binary numbers, the content format including numerals, alphanumerics, and special characters;
src (Source); the source for representing the first TLV data includes from the terminal, from the card, or from the issuer.
Specifically, the first type is expressed as:
in this embodiment, the second type includes members,
DataLen; an actual data length for representing the first TLV data;
data; actual data representing the first TLV data.
Specifically, the second type is expressed as:
the invariant array (first array) is expressed as:
const element_ ATTR gElementAttr [ elements_num ] = {. Wherein const represents immutability, and the'=' number represents each member value given to the array;
gElementAttr is defined while being assigned a value from small to large according to the Tag value, and each TLV data has a fixed index.
The variable array (second array) is expressed as:
ELEMENT_DATA gEmvData [ ELEMENTs_NUM ]; wherein ELEMENTS_NUM is the number of common TLV data.
A byte array is used to reserve a piece of memory for representing the actual data in the TLV data in the program.
gEmvData and gElementAttr are in one-to-one correspondence by index numbers, with member DATA of ELEMENT_DATA pointing to where TLV DATA is stored in gTLVPoolMem.
The third array is denoted as such,
max_exemvdatanum is the number of such TLV data that is preset to be stored at maximum.
In this embodiment, after the TLV data is stored, corresponding operations need to be performed on the TLV data, where the operations include setting and reading; the TLV data can be set and read through index and TAG value searching.
In this embodiment, the index is only applicable to access the first type, i.e. the order number of the index TLV data in the first array.
In this embodiment, the relevant data is acquired or set by TAG of EMV data. Since most of the TLV data is stored in an array of common TLV data and the array is stored in a sorted manner from small to large according to the size of the TAG, the corresponding TLV data can be found by the TAG in a folded search manner. The time complexity is then O (log 2 (n)). For TLV data stored in the extended area, the time complexity is O (n), and this is rarely the case, and the speed of program operation is almost negligible. Thus, setting and reading TLV data by TAG value lookup is specifically as follows.
Reading TLV data by TAG value lookup specifically includes,
a1, searching corresponding TLV data in a first array by using a halving search method according to the TAG value of the TLV data, and if the corresponding TLV data is not found, entering a step A2; otherwise, enter step A3;
a2, sequentially searching corresponding TLV data in a third array according to the TAG value of the TLV data, and if the corresponding TLV data is not found, feeding back a searching error code; otherwise, enter step A3;
a3, returning the found data length and data of the corresponding TLV data.
In this embodiment, the setting of TLV data by TAG value lookup specifically includes,
b1, searching the index of the corresponding TLV data in the first array by using a halving search method according to the TAG value of the TLV data, and if the index is not found, entering a step B2; otherwise, enter step B3;
b2, checking whether the number of TLV data stored in the third array reaches the array length, and if so, returning an overflow error; otherwise, adding the new TLV data to the last of the third array, adding one to the array length of the third array, and entering a step B3;
b3, checking the source of the new TLV data, and if the source of the new TLV data is inconsistent with the source of the TLV data corresponding to the index, returning to illegal operation, and ending the setting flow; otherwise, enter step B4;
if the source of the new TLV data is a card and the TLV data is already set, checking whether the TLV data can be reset, if not, returning to illegal operation, and ending the setting flow; otherwise, enter step B5;
and B5, setting new TLV data into a second group according to the index found in the step B1, and finishing the setting of the TLV data.
Specifically, the code for setting the TLV data and reading the TLV data by looking up the TAG value is specifically,
setting data:
int EmvSetTLVDataByTag(unsigned short tag,const BYTE*data,int datLen,int source)
{
int idx;
Idx=EmvSearchIndexByTag(tag);
if(idx<0)
return EmvSetTagInExtendArea(tag,data,datLen);
return EmvSetTLVDataByIdx(idx,data,dataLen,source);
}
acquiring data:
int EmvGetTLVDataByTag(unsigned short tag,BYTE*data,int*datLen)
{
int idx;
idx=EmvSearchIndexByTag(tag);
if(idx<0)
return EmvGetTagInExtendArea(tag,data,datLen);
*dataLen=gEmvData[idx].DataLen;
memcpy(data,gEmvData[idx].Data,*dataLen);
return EMV_OK;
}
the EmvSearchIndexByTag is used for rapidly finding an index corresponding to the Tag according to a halving search method, and the implementation code is specifically as follows:
EmvSetTagInExtendARea and EmvGetTagInExtendARea enable access to TLV data of an extended area. The specific code is as follows:
setting extended TLV data
Reading extended TLV data
By adopting the technical scheme disclosed by the invention, the following beneficial effects are obtained:
the invention provides a storage method of data in an EMV protocol library, which can quickly access TLV data in the EMV protocol library and save protocol running time. The memory can be saved to the maximum extent and fragmentation of the memory can be prevented. The attributes of TLV data can be accessed using a unified code.
The foregoing is merely a preferred embodiment of the present invention and it should be noted that modifications and adaptations to those skilled in the art may be made without departing from the principles of the present invention, which is also intended to be covered by the present invention.

Claims (7)

1. The data stored in the EMV protocol library is defined by adopting a TLV format, namely TLV data; the method is characterized in that: the storage method divides TLV data defined in the EMV protocol into first TLV data and second TLV data for storage respectively; the first TLV data is common TLV data or TLV data known before operation; the second TLV data is unusual TLV data or issuer-specific TLV data or unknown TLV data;
the storing of the first TLV data specifically comprises the following steps of;
defining a first type for representing an immutable portion of the first TLV data, the immutable portion of the first TLV data including a maximum length thereof, a TAG value, an attribute, a content format, and a source;
defining a second type for representing a variable portion of the first TLV data, the variable portion of the first TLV data including actual data and actual data length;
defining two ordered lists, namely a first array and a second array according to a first type and a second type, wherein each member in the first array is of the first type, each member in the second array is of the second type, and each member in the first array and the second array is arranged in ascending order according to the TAG value in TLV data;
the storing of the second TLV data specifically comprises the following steps of;
defining a third type, wherein the third type is used for representing third TLV data; defining an ordered list according to a third type, namely a third array, wherein each member of the third array is of the third type, and each member of the third array is arranged according to the time sequence of data acquisition.
2. The method for storing data in an EMV protocol library according to claim 1, wherein: the first type includes members of the first type,
MaxLen; a maximum length for representing the first TLV data;
tag; a specific TAG value for representing the first TLV data using an integer;
attr; representing attributes of the first TLV data using a bitmap, each bit in the bitmap representing an attribute;
fmt; a content format for representing the first TLV data using binary numbers, the content format including numerals, alphanumerics, and special characters;
src; the source for representing the first TLV data includes from the terminal, from the card, or from the issuer.
3. The method for storing data in an EMV protocol library according to claim 1, wherein: the second type includes members of the second type,
DataLen; an actual data length for representing the first TLV data;
data; actual data representing the first TLV data.
4. The method for storing data in an EMV protocol library according to claim 1, wherein: after the TLV data is stored, corresponding operations on the TLV data are needed, wherein the operations comprise setting and reading; specifically, the TLV data is set and read through two modes of index and TAG value searching.
5. The method for storing data in an EMV protocol library according to claim 4, wherein: the index is only applicable to access the first type, i.e. the permutation number of the index TLV data in the first array.
6. The method for storing data in an EMV protocol library according to claim 4, wherein: reading TLV data by TAG value lookup specifically includes,
a1, searching corresponding TLV data in a first array by using a halving search method according to the TAG value of the TLV data, and if the corresponding TLV data is not found, entering a step A2; otherwise, enter step A3;
a2, sequentially searching corresponding TLV data in a third array according to the TAG value of the TLV data, and if the corresponding TLV data is not found, feeding back a searching error code; otherwise, enter step A3;
a3, returning the found data length and data of the corresponding TLV data.
7. The method for storing data in an EMV protocol library according to claim 4, wherein: the setting of TLV data by TAG value lookup specifically includes the following,
b1, searching the index of the corresponding TLV data in the first array by using a halving search method according to the TAG value of the TLV data, and if the index is not found, entering a step B2; otherwise, enter step B3;
b2, checking whether the number of TLV data stored in the third array reaches the array length, and if so, returning an overflow error; otherwise, adding the new TLV data to the last of the third array, adding one to the array length of the third array, and entering a step B3;
b3, checking the source of the new TLV data, and if the source of the new TLV data is inconsistent with the source of the TLV data corresponding to the index, returning to illegal operation, and ending the setting flow; otherwise, enter step B4;
if the source of the new TLV data is a card and the TLV data is already set, checking whether the TLV data can be reset, if not, returning to illegal operation, and ending the setting flow; otherwise, enter step B5;
and B5, setting new TLV data into a second group according to the index found in the step B1, and finishing the setting of the TLV data.
CN202010972680.9A 2020-09-16 2020-09-16 Method for storing data in EMV protocol library Active CN112084197B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010972680.9A CN112084197B (en) 2020-09-16 2020-09-16 Method for storing data in EMV protocol library

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010972680.9A CN112084197B (en) 2020-09-16 2020-09-16 Method for storing data in EMV protocol library

Publications (2)

Publication Number Publication Date
CN112084197A CN112084197A (en) 2020-12-15
CN112084197B true CN112084197B (en) 2023-10-31

Family

ID=73737079

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010972680.9A Active CN112084197B (en) 2020-09-16 2020-09-16 Method for storing data in EMV protocol library

Country Status (1)

Country Link
CN (1) CN112084197B (en)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005122579A (en) * 2003-10-20 2005-05-12 Dainippon Printing Co Ltd Ic card and ic card software program corresponding to a plurality of communication protocols
CN102811227A (en) * 2012-08-30 2012-12-05 重庆大学 Administration mechanism for standard way access control list (ACL) rule under internet protocol security (IPsec) protocol
CN103036877A (en) * 2012-12-10 2013-04-10 北京中创信测科技股份有限公司 Device and method for code generation of coding and decoding based on threshold limit value (TLV) form protocol
CN104348925A (en) * 2013-07-30 2015-02-11 中兴通讯股份有限公司 Method for processing raw IP (Internet Protocol) message and corresponding device
WO2015200342A1 (en) * 2014-06-23 2015-12-30 Google, Inc. Methods and apparatus for using smart environment devices via application program interfaces
CN107454953A (en) * 2017-03-16 2017-12-08 深圳大趋智能科技有限公司 EMV implementation method and device
CN109298866A (en) * 2018-09-26 2019-02-01 杭州米加科技股份有限公司 TLV format protocol fast resolving method based on C language
CN110287190A (en) * 2019-06-25 2019-09-27 四川深度在线广告传媒有限公司 A kind of big data analysis custom coding memory structure and coding, coding/decoding method

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7461042B2 (en) * 2004-11-17 2008-12-02 Long Jeffrey G Method, system, and program for defining and managing complex contingent rules, and exceptions thereto, in a rule-based computer system

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005122579A (en) * 2003-10-20 2005-05-12 Dainippon Printing Co Ltd Ic card and ic card software program corresponding to a plurality of communication protocols
CN102811227A (en) * 2012-08-30 2012-12-05 重庆大学 Administration mechanism for standard way access control list (ACL) rule under internet protocol security (IPsec) protocol
CN103036877A (en) * 2012-12-10 2013-04-10 北京中创信测科技股份有限公司 Device and method for code generation of coding and decoding based on threshold limit value (TLV) form protocol
CN104348925A (en) * 2013-07-30 2015-02-11 中兴通讯股份有限公司 Method for processing raw IP (Internet Protocol) message and corresponding device
WO2015200342A1 (en) * 2014-06-23 2015-12-30 Google, Inc. Methods and apparatus for using smart environment devices via application program interfaces
CN107454953A (en) * 2017-03-16 2017-12-08 深圳大趋智能科技有限公司 EMV implementation method and device
CN109298866A (en) * 2018-09-26 2019-02-01 杭州米加科技股份有限公司 TLV format protocol fast resolving method based on C language
CN110287190A (en) * 2019-06-25 2019-09-27 四川深度在线广告传媒有限公司 A kind of big data analysis custom coding memory structure and coding, coding/decoding method

Also Published As

Publication number Publication date
CN112084197A (en) 2020-12-15

Similar Documents

Publication Publication Date Title
US9418224B2 (en) Portable electronic device and control method of portable electronic device
RU2607622C2 (en) Recording of data into smart card nonvolatile memory
NL8201847A (en) DEVICE FOR PROTECTION AGAINST UNAUTHORIZED READING OF PROGRAM WORDS TO BE MEMORIZED IN A MEMORY.
US10656837B2 (en) Index management in a flash memory
US20140156913A1 (en) Data processing method, memory controller and memory storage apparatus
CN111930386A (en) PATTERN file compiling method and device and electronic equipment
CN113129150A (en) Transaction data processing method and device, terminal device and readable storage medium
CN114090671A (en) Data import method and device, electronic equipment and storage medium
CN112379835B (en) OOB area data extraction method, terminal device and storage medium
CN112084197B (en) Method for storing data in EMV protocol library
US10162540B2 (en) Storage in flash memory
JP3771904B2 (en) Microprocessor circuit with auxiliary register bank
US5450366A (en) IC memory card
CN111858581A (en) Page query method and device, storage medium and electronic equipment
CN109783024B (en) Data storage processing method and device
CN115294586A (en) Invoice identification method and device, storage medium and electronic equipment
JPH10198776A (en) Portable information recording medium, and its information writing and reading method
US20020054513A1 (en) Method for program revise of an IC smartcard system
CN107480052B (en) Method and device for positioning BIOS (basic input output System) codes during downtime
US10223195B2 (en) Counter in a flash memory
JPH01217689A (en) Portable electronic equipment
JP3459049B2 (en) Character string search method and device
CN116580748B (en) Configuration method, device, equipment and storage medium of memory chip test fixture
US6742073B1 (en) Bus controller technique to control N buses
JPS5853791B2 (en) character recognition device

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant