# Class: com.pnfsoftware.jeb.core.units.code.asm.sig.NativeSignatureGenerator

Generation of [INativeSignature](INativeSignature), based on a [ISigningStrategy](ISigningStrategy). 

 This object is a singleton available to all analysis, similar to [NativeSignatureDBManager](NativeSignatureDBManager).

## Method: generateSignature
- parameter: `analyzer`, type: `com.pnfsoftware.jeb.core.units.code.asm.analyzer.INativeCodeAnalyzer<com.pnfsoftware.jeb.core.units.code.IInstruction>`
- parameter: `routine`, type: `com.pnfsoftware.jeb.core.units.code.asm.items.INativeMethodItem`
- parameter: `clientProvidedFeatureSigners`, type: `java.util.Set<com.pnfsoftware.jeb.core.units.code.asm.sig.NativeFeatureSignerID>`
- parameter: `clientProvidedAttributeSigners`, type: `java.util.Set<com.pnfsoftware.jeb.core.units.code.asm.sig.NativeAttributeSignerID>`
- return type: `com.pnfsoftware.jeb.core.units.code.asm.sig.INativeSignature`

Description: Generate a new signature for a routine, following the default strategy.
parameter: analyzer: analyzer owning the routine
parameter: routine: routine to sign
parameter: clientProvidedFeatureSigners: set of feature signers IDs, if present those feature            signers will be used rather than the ones suggested by the strategy. **Not            implemented for now.**
parameter: clientProvidedAttributeSigners: set of attribute signers IDs, if present those            attributes will be collected rather than the ones suggested by the strategy.            **Not implemented for now.**
return: generated native signature

## Method: setDefaultStrategy
- parameter: `defaultStrategy`, type: `com.pnfsoftware.jeb.core.units.code.asm.sig.ISigningStrategy`

Description: Set the default signing strategy.
parameter: defaultStrategy: default signing strategy

## Static Method: getInstance
- parameter: `defaultStrategy`, type: `com.pnfsoftware.jeb.core.units.code.asm.sig.ISigningStrategy`
- return type: `com.pnfsoftware.jeb.core.units.code.asm.sig.NativeSignatureGenerator`

Description: Get the singleton signature generator.
parameter: defaultStrategy: default signing strategy to use when creating the singleton
return: singleton signature generator

