← Back to Patent Explorer
US6253374B1 Expired / Lapsed US ⏱️ 0.0 years remaining

Method for validating a signed program prior to execution time or an unsigned program at execution time

Assignee: Microsoft Technology Licensing LLC
•
Filing: 1998-07-02
•
Granted: 2001-06-26
•
Expires: 2018-07-02
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract Validating a signed program prior to execution time or an unsigned program at execution time. A program is validated by checking the input parameters to the instructions of the program to prevent errors associated with executing an instruction using an invalid input parameter. Both signed programs and unsigned programs are accommodated. A signed program is validated during the signing process, whereas an unsigned program is validated at execution time.

Inventors

  • 👤 Bodin Dresevic
  • 👤 Donald D. Chinn
  • 👤 Gregory C. Hitchcock

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-04 04:18
CPC Classifications
G; G06; G06F; G06F21/00; G06F21/50; G06F21/51; G06F21/52

Claims Analysis

Total Claims: 19
Claim 1
Independent Claim 113 words
A method for validating a program, comprising the steps of: (a) determining whether a valid digital signature is associated with the program prior to loading the program, (b) if the valid digital signature is associated with the program, then setting a flag to indicate that the program is valid; (c) if the valid digital signature is not associated with the program, then determining whether the program is valid when the program is executed by checking input parameters to all instructions of the program; and (d) if the valid digital signature is associated with the program, then executing the program at run time without checking the input parameters to all instructions of the program.
Claim 2
Independent Claim 113 words
A method for validating a program, comprising the steps of: (a) determining whether a valid digital signature is associated with the program prior to loading the program, (b) if the valid digital signature is associated with the program, then setting a flag to indicate that the program is valid; (c) if the valid digital signature is not associated with the program, then determining whether the program is valid when the program is executed by checking input parameters to all instructions of the program; and (d) if the valid digital signature is associated with the program, then executing the program at run time without checking the input parameters to all instructions of the program.
Claim 3
Dependent Claim 84 words
The method of claim 1 , wherein the valid digital signature is associated with the program if the program is valid for a range of inputs to the program, further comprising the steps of: prior to executing the program using a selected input, checking whether the flag is set; if the flag is set, then determining whether the selected input is within the range of inputs; and if the selected input is within the range of inputs, then executing the program without further validation.
Claim 4
Dependent Claim 158 words
The method of claim 1 , wherein the valid digital signature is associated with the program if the program is valid for a range of inputs to the program, further comprising the steps of: prior to executing the program using a selected input, checking whether the flag is set; if the flag is set, then determining whether the selected input is within the range of inputs; and if the selected input is not within the range of inputs, then determining whether the program is valid for the selected input when the program is executed by (a) determining a set of input parameters to an instruction of the program; (b) checking the validity of the set of input parameters to the instruction; (c) if the set of input parameters is valid, then executing the instruction; (d) otherwise, terminating execution of the program; and (e) repeating steps (a)-(d) for subsequent sets of input parameters to subsequent instructions of the program.
Claim 5
Independent Claim 149 words
A method for associating a digital signature with a font file containing a program that includes a plurality of hints, comprising the steps of: (a) checking the font file to check structural components of the font file; (b) checking the font file to check all input parameters to the hints of the program for a predetermined size range of glyphs; (c) if the structural components and the input parameters to the hints of the program for the predetermined size range are valid, then associating the digital signature with the font file, so that the digital signature is checked when the font file is subsequently loaded to determine whether the font file is valid for the predetermined size range of glyphs; and (d) if the structural components and the input parameters to the hints of the program are not valid, then not associating the digital signature with the font file.
Claim 6
Independent Claim 149 words
A method for associating a digital signature with a font file containing a program that includes a plurality of hints, comprising the steps of: (a) checking the font file to check structural components of the font file; (b) checking the font file to check all input parameters to the hints of the program for a predetermined size range of glyphs; (c) if the structural components and the input parameters to the hints of the program for the predetermined size range are valid, then associating the digital signature with the font file, so that the digital signature is checked when the font file is subsequently loaded to determine whether the font file is valid for the predetermined size range of glyphs; and (d) if the structural components and the input parameters to the hints of the program are not valid, then not associating the digital signature with the font file.
Claim 7
Dependent Claim 36 words
The method of claim 4 , wherein step (c) further comprises: if the digital signature is valid, then setting a flag to indicate that the font file is valid for the predetermined size range of glyphs.
Claim 8
Dependent Claim 78 words
The method of claim 4 , wherein the digital signature is valid, and wherein step (c) further comprises: prior to rendering a glyph at a selected size using the font file, determining whether the selected size of the glyph is within the predetermined size range; and if the selected size is within the predetermined size range, then rendering the glyph using the font file without further validation of the input parameters to the hints for the selected size.
Claim 9
Dependent Claim 135 words
The method of claim 4 , wherein the digital signature is valid, and wherein step (c) further comprises: prior to rendering a glyph at a selected size using the font file, determining whether the selected size of the glyph is within the predetermined size range; and if the selected size is not within the predetermined size range, then determining whether the program is valid for the selected size by: (a) determining a set of input parameters to a first hint of the program; (b) checking the validity of the set of input parameters to the first hint; (c) if the set of input parameters is valid, then executing the first hint; (d) otherwise, terminating execution of the program; and (e) repeating steps (a)-(d) for subsequent sets of input parameters to subsequent hints of the program.
Claim 10
Independent Claim 155 words
A method for validating a signed program prior to execution time and an unsigned program at execution time, wherein the signed program is signed with a digital signature if the signed program is valid for a predetermined range of inputs to the signed program, comprising the steps of: for the signed program: prior to execution time, determining whether a selected input is within the range of inputs; if the selected input is within the range of inputs, then executing the signed program using the selected input; and if the selected input is not within the range of inputs, then determining whether all input parameters are valid for all instructions of the signed program during run time; and for the unsigned program: at execution time, determining whether the unsigned program is valid for the selected input by checking all input parameters to all instructions of the unsigned program for the selected input to the unsigned program.
Claim 11
Independent Claim 155 words
A method for validating a signed program prior to execution time and an unsigned program at execution time, wherein the signed program is signed with a digital signature if the signed program is valid for a predetermined range of inputs to the signed program, comprising the steps of: for the signed program: prior to execution time, determining whether a selected input is within the range of inputs; if the selected input is within the range of inputs, then executing the signed program using the selected input; and if the selected input is not within the range of inputs, then determining whether all input parameters are valid for all instructions of the signed program during run time; and for the unsigned program: at execution time, determining whether the unsigned program is valid for the selected input by checking all input parameters to all instructions of the unsigned program for the selected input to the unsigned program.
Claim 12
Dependent Claim 38 words
The method of claim 8 , further comprising the steps of: for the signed program, if the selected input is not within the range of inputs, then determining whether the signed program is valid for the selected input.
Claim 13
Dependent Claim 98 words
The method of claim 9 , wherein the step of determining whether the signed program is valid for the selected input comprises: (a) determining a set of input parameters to an instruction of the program based upon the selected input; (b) checking the validity of the set of input parameters to the instruction; (c) if the set of input parameters is valid, then executing the instruction; (d) otherwise, terminating execution of the signed program prior to execution of the instruction; and (e) repeating steps (a)-(d) for subsequent sets of input parameters to subsequent instructions of the signed program.
Claim 14
Dependent Claim 47 words
The method of claim 8 , further comprising the steps of: in response to a request to load the signed program, determining whether the digital signature is valid; and if the digital signature is valid, then setting a flag to indicate that the signed program is valid.
Claim 15
Dependent Claim 137 words
A computer-readable medium having computer-executable instructions comprising the steps of: prior to executing a program using a selected input, determining whether the program was previously validated over a range of program inputs by checking whether a valid digital signature is associated with the program; if a valid digital signature is associated with the program, then executing the program at run time without checking the input parameters to all instructions of the program; if the program was previously validated, then determining whether the selected input is within the range of program inputs; if the selected input is within the range of program inputs, then executing the program using the selected input without further validation; and if the program was not previously validated, then determining whether the program is valid for the selected input when the program is executed.
Claim 16
Dependent Claim 137 words
A computer-readable medium having computer-executable instructions comprising the steps of: prior to executing a program using a selected input, determining whether the program was previously validated over a range of program inputs by checking whether a valid digital signature is associated with the program; if a valid digital signature is associated with the program, then executing the program at run time without checking the input parameters to all instructions of the program; if the program was previously validated, then determining whether the selected input is within the range of program inputs; if the selected input is within the range of program inputs, then executing the program using the selected input without further validation; and if the program was not previously validated, then determining whether the program is valid for the selected input when the program is executed.
Claim 17
Dependent Claim 28 words
The computer-readable medium of claim 12 , wherein the step of determining whether the program was previously validated occurs in response to a request to load the program.
Claim 18
Dependent Claim 103 words
The computer-readable medium of claim 12 , wherein the program includes instructions, and wherein the step of determining whether the program is valid for the selected input comprises: (a) determining a set of input parameters to an instruction of the program based upon the selected input; (b) checking the validity of the set of input parameters to the instruction; (c) if the set of input parameters is valid, then executing the instruction; (d) otherwise, terminating execution of the signed program prior to execution of the instruction; and (e) repeating steps (a)-(d) for subsequent sets of input parameters to subsequent instructions of the program.
Claim 19
Dependent Claim 116 words
The computer-readable medium of claim 12 , wherein the program includes instructions, further comprising the steps of: if the selected input is not within the range of program inputs, then determining whether the program is valid for the selected input by (a) determining a set of input parameters to an instruction of the program based upon the selected input; (b) checking the validity of the set of input parameters for the instruction; (c) if the set of input parameters is valid, then executing the instruction; (d) otherwise, terminating execution of the signed program prior to execution of the instruction; and (e) repeating steps (a)-(d) for subsequent sets of input parameters to subsequent instructions of the program.

References Cited (Backward Citations)

US5504822A Cited
US5226148A Cited
US5414812A Cited
US5291243A Cited
US5748960A Cited
US5912974A Cited
US5781714A Cited
US5606609A Cited
US5949975A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2004-06-25 2004-12-25 2005-06-26 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2008-06-25 2008-12-25 2009-06-26 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2012-06-25 2012-12-25 2013-06-26 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag