Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "DSDP/MTJ/Obfuscate the code"

< DSDP‎ | MTJ
Line 38: Line 38:
  
  
===Use Case Description===
+
'''Use Case Description'''
  
 
The developer obfuscates compiled code
 
The developer obfuscates compiled code
  
  
===Basic Flow===
+
'''Basic Flow'''
  
 
:B1: User selects the application.
 
:B1: User selects the application.
Line 52: Line 52:
  
  
===Alternate Flows===
+
'''Alternate Flows'''
  
  
  
===Preconditions===
+
'''Preconditions'''
  
====A MTJ project is installed in Eclipse and is compilable.====
+
'''A MTJ project is installed in Eclipse and is compilable.'''
  
====User has installed at least one Obfuscator and saved at least one the Obfuscation configuration.====
+
'''User has installed at least one Obfuscator and saved at least one the Obfuscation configuration.'''
 
See: Configure Obfuscator
 
See: Configure Obfuscator
  
  
===Postconditions===
+
'''Postconditions'''
  
====The obfuscated code is generated in the project folder====
+
'''The obfuscated code is generated in the project folder'''
  
 
A code with the user defined parameters has been generated.
 
A code with the user defined parameters has been generated.
  
  
===Extension Points===
+
'''Extension Points'''
  
  
===Special Requirements===
+
'''Special Requirements'''
  
  
===Additional Information===
+
'''Additional Information'''
  
  
Line 98: Line 98:
  
  
===Use Case Description===
+
'''Use Case Description'''
  
 
The code will be obfuscated automatically after a successful compilation
 
The code will be obfuscated automatically after a successful compilation
  
  
===Basic Flow===
+
'''Basic Flow'''
  
 
B1: User selects to compile the application code, or the system compiles it automatically, if specified in preferences.
 
B1: User selects to compile the application code, or the system compiles it automatically, if specified in preferences.
Line 109: Line 109:
  
  
===Alternate Flows===
+
'''Alternate Flows'''
  
 
:Obfuscation fails
 
:Obfuscation fails
Line 115: Line 115:
  
  
===Preconditions===
+
'''Preconditions'''
  
====Automatic code obfuscation has been set on to project settings====
+
'''Automatic code obfuscation has been set on to project settings'''
  
====At least one obfuscator has been installed and configured====
+
'''At least one obfuscator has been installed and configured'''
 
See: [[Configure Obfuscator]]
 
See: [[Configure Obfuscator]]
  
====The code compiles without errors====
+
'''The code compiles without errors'''
  
  
===Postconditions===
+
'''Postconditions'''
  
====The code has been obfuscated successfully====
+
'''The code has been obfuscated successfully'''
  
  
===Extension Points===
+
'''Extension Points'''
  
  
===Special Requirements===
+
'''Special Requirements'''
  
  
===Additional Information===
+
'''Additional Information'''
  
  
 
----
 
----
===Comments:===
+
'''Comments:'''
  
 
==Configure Obfuscator==
 
==Configure Obfuscator==
Line 157: Line 157:
  
  
===Use Case Description===
+
'''Use Case Description'''
  
  
===Basic Flow===
+
'''Basic Flow'''
  
 
:B1: User chooses to create a new Obfuscation Configuration from Obfuscation preferences page.
 
:B1: User chooses to create a new Obfuscation Configuration from Obfuscation preferences page.
Line 172: Line 172:
  
  
===Alternate Flows===
+
'''Alternate Flows'''
  
 
:Alternative Flow 1: Edit existing obfuscation configuration
 
:Alternative Flow 1: Edit existing obfuscation configuration
Line 190: Line 190:
  
  
===Preconditions===
+
'''Preconditions'''
  
====Preconditions for basic flow 1====
+
'''Preconditions for basic flow 1'''
  
 
User has installed at least one Obfuscator.
 
User has installed at least one Obfuscator.
Line 198: Line 198:
 
Given name of obfuscation configuration is never used.
 
Given name of obfuscation configuration is never used.
  
====Preconditions for alternative flow 1====
+
'''Preconditions for alternative flow 1'''
  
 
User has saved at least one the obfuscation configuration.
 
User has saved at least one the obfuscation configuration.
  
====Preconditions for alternative flow 2====
+
'''Preconditions for alternative flow 2'''
  
 
User has saved at least one the obfuscation configuration.
 
User has saved at least one the obfuscation configuration.
  
  
===Postconditions===
+
'''Postconditions'''
  
====Post Conditions for basic flow 3====
+
'''Post Conditions for basic flow 3'''
  
 
The new Obfuscation configuration is stored in the system and it’s ready to use.
 
The new Obfuscation configuration is stored in the system and it’s ready to use.
  
====Post Conditions for alternative flow 1====
+
'''Post Conditions for alternative flow 1'''
  
 
The changes in the editing Obfuscation configuration are stored in the system and it’s ready to use.
 
The changes in the editing Obfuscation configuration are stored in the system and it’s ready to use.
  
====Post Conditions for alternative flow 2====
+
'''Post Conditions for alternative flow 2'''
  
 
Selected configuration is removed from the system. Projects which was this configuration assigned are now set up without the obfuscation task in the build process.
 
Selected configuration is removed from the system. Projects which was this configuration assigned are now set up without the obfuscation task in the build process.
  
  
===Extension Points===
+
'''Extension Points'''
  
  
===Special Requirements===
+
'''Special Requirements'''
  
  
===Additional Information===
+
'''Additional Information'''
  
  
 
----
 
----
===Comments:===
+
'''Comments:'''
  
  
  
 
Back to main [[DSDP-MTJ Use Cases]]
 
Back to main [[DSDP-MTJ Use Cases]]

Revision as of 09:24, 11 January 2007

Back to main DSDP-MTJ Use Cases


Short description:

The developer obfuscates the application compiled code using an external Java code obfuscator.

The Obfuscation is included as a task in the build process. Obfuscation task is one of other build tasks such as compilation, code reduction, preverification, packaging, signing, deployment and running. User can manage build process as he needs by adding tasks to build process. Managing build process is done in project properties.

Obfuscation build task needs to its running several attributes. User has to set up the obfuscator location path (user can choose from several external obfuscators) and obfuscator additional parameters (like command line parameters). These parameters are for the better future using saved in the Obfuscation configuration. Each configuration has unique name and it contains user defined attributes about the Obfuscator.

User can manage a configuration of obfuscation via preferences/properties pages. Global setting is done via the obfuscation preferences in global eclipse preferences page. Here user can create, edit or remove configurations of the Obfuscator. Assigning concrete configuration to the MTJ project is set up in the project properties. Here user can enable obfuscation task and choose from saved configuration which obfuscator is used.


Priority:

Owner:

Status: Proposed, Outlined


Community Review: review_date_here



Manual Obfuscation

Priority:

Owner:

Status:

Proposed:|Accepted: date_here
Identified|Described|Outlined|Detailed

Community Review: review_date_here



Use Case Description

The developer obfuscates compiled code


Basic Flow

B1: User selects the application.
B2: User chooses to generate the obfuscated code.
B3: System verifies that the code is compiled. If not, an error message is displayed with an option to compile.
B4: The system obfuscates the compiled code using the external obfuscator specified in the project properties.
B5: The system notifies that the obfuscation was successfully executed or an error message is displayed in case of failure.


Alternate Flows


Preconditions

A MTJ project is installed in Eclipse and is compilable.

User has installed at least one Obfuscator and saved at least one the Obfuscation configuration. See: Configure Obfuscator


Postconditions

The obfuscated code is generated in the project folder

A code with the user defined parameters has been generated.


Extension Points


Special Requirements


Additional Information



Comments:


Automatic Obfuscation

Priority:

Owner:

Status:

Proposed:|Accepted: date_here
Identified|Described|Outlined|Detailed

Community Review: review_date_here



Use Case Description

The code will be obfuscated automatically after a successful compilation


Basic Flow

B1: User selects to compile the application code, or the system compiles it automatically, if specified in preferences. B2: The system notifies that the obfuscation was successfully executed.


Alternate Flows

Obfuscation fails
A1:If obfuscation fails, an error message will be displayed


Preconditions

Automatic code obfuscation has been set on to project settings

At least one obfuscator has been installed and configured See: Configure Obfuscator

The code compiles without errors


Postconditions

The code has been obfuscated successfully


Extension Points


Special Requirements


Additional Information



Comments:

Configure Obfuscator

Priority:

Owner:

Status:

Proposed:|Accepted: date_here
Identified|Described|Outlined|Detailed

Community Review: review_date_here



Use Case Description


Basic Flow

B1: User chooses to create a new Obfuscation Configuration from Obfuscation preferences page.
B2: User fills in these attributes:
  • Obfuscator location path
  • Additional obfuscator parameters
  • Unique configuration name
B3: User confirms the configuration creation.
B4: The configuration is stored in the system.
B5: Steps B1-B3 can be repeated as many times as needed.


Alternate Flows

Alternative Flow 1: Edit existing obfuscation configuration
A1: User selects Obfuscation Configuration from the list on Obfuscation preferences page.
A2: System shows configuration attributes.
A3: User changes configuration attributes.
A4: User save changed Obfuscation configuration.
A5: System saves new configuration data.
A6: Steps A1-A4 can be repeated as many times as needed.
Alternative Flow 2: Remove existing obfuscation configuration
A1: User selects an Obfuscation configuration from the obfuscation preferences page.
A2: System shows configuration attributes.
A3: User chooses to delete selected configuration.
A4: System removes selected configuration.
A5: Steps A1-A3 can be repeated as many times as needed.


Preconditions

Preconditions for basic flow 1

User has installed at least one Obfuscator.

Given name of obfuscation configuration is never used.

Preconditions for alternative flow 1

User has saved at least one the obfuscation configuration.

Preconditions for alternative flow 2

User has saved at least one the obfuscation configuration.


Postconditions

Post Conditions for basic flow 3

The new Obfuscation configuration is stored in the system and it’s ready to use.

Post Conditions for alternative flow 1

The changes in the editing Obfuscation configuration are stored in the system and it’s ready to use.

Post Conditions for alternative flow 2

Selected configuration is removed from the system. Projects which was this configuration assigned are now set up without the obfuscation task in the build process.


Extension Points


Special Requirements


Additional Information



Comments:


Back to main DSDP-MTJ Use Cases

Back to the top