mirror of
https://github.com/unidoc/unipdf.git
synced 2025-05-11 19:29:40 +08:00
108 lines
33 KiB
Go
108 lines
33 KiB
Go
//
|
|
// Copyright 2020 FoxyUtils ehf. All rights reserved.
|
|
//
|
|
// This is a commercial product and requires a license to operate.
|
|
// A trial license can be obtained at https://unidoc.io
|
|
//
|
|
// DO NOT EDIT: generated by unitwist Go source code obfuscator.
|
|
//
|
|
// Use of this source code is governed by the UniDoc End User License Agreement
|
|
// terms that can be accessed at https://unidoc.io/eula/
|
|
|
|
package license ;import (_cg "bytes";_c "compress/gzip";_a "crypto";_g "crypto/aes";_ccf "crypto/cipher";_ab "crypto/rand";_gb "crypto/rsa";_dd "crypto/sha512";_dg "crypto/x509";_ec "encoding/base64";_fd "encoding/hex";_ecb "encoding/json";_bf "encoding/pem";
|
|
_eg "errors";_cca "fmt";_fe "github.com/unidoc/unipdf/v3/common";_f "io";_af "io/ioutil";_d "net";_fb "net/http";_b "os";_ed "path/filepath";_fg "sort";_ce "strings";_ea "sync";_cc "time";);func _dgg ()string {_eag :=_b .Getenv ("\u0048\u004f\u004d\u0045");
|
|
if len (_eag )==0{_eag ,_ =_b .UserHomeDir ();};return _eag ;};func _cf (_ceac string )(LicenseKey ,error ){var _cb LicenseKey ;_dc ,_cda :=_agg (_cgb ,_ee ,_ceac );if _cda !=nil {return _cb ,_cda ;};_cfc ,_cda :=_cd (_afac ,_dc );if _cda !=nil {return _cb ,_cda ;
|
|
};_cda =_ecb .Unmarshal (_cfc ,&_cb );if _cda !=nil {return _cb ,_cda ;};_cb .CreatedAt =_cc .Unix (_cb .CreatedAtInt ,0);if _cb .ExpiresAtInt > 0{_fa :=_cc .Unix (_cb .ExpiresAtInt ,0);_cb .ExpiresAt =&_fa ;};return _cb ,nil ;};type meteredStatusResp struct{Valid bool `json:"valid"`;
|
|
OrgCredits int64 `json:"org_credits"`;OrgUsed int64 `json:"org_used"`;OrgRemaining int64 `json:"org_remaining"`;};func (_ge *LicenseKey )isExpired ()bool {return _ge .getExpiryDateToCompare ().After (*_ge .ExpiresAt )};func (_bbc *LicenseKey )getExpiryDateToCompare ()_cc .Time {if _bbc .Trial {return _cc .Now ().UTC ();
|
|
};return _fe .ReleasedAt ;};var _bd =_cc .Date (2020,1,1,0,0,0,0,_cc .UTC );type meteredStatusForm struct{};type meteredClient struct{_bfa string ;_dda string ;_fbf *_fb .Client ;};func Track (docKey string ,useKey string )error {return _faf (docKey ,useKey ,false )};
|
|
const _afac ="\u000a\u002d\u002d\u002d\u002d\u002d\u0042\u0045\u0047\u0049\u004e \u0050\u0055\u0042\u004c\u0049\u0043\u0020\u004b\u0045Y\u002d\u002d\u002d\u002d\u002d\u000a\u004d\u0049I\u0042\u0049\u006a\u0041NB\u0067\u006b\u0071\u0068\u006b\u0069G\u0039\u0077\u0030\u0042\u0041\u0051\u0045\u0046A\u0041\u004f\u0043\u0041\u0051\u0038\u0041\u004d\u0049\u0049\u0042\u0043\u0067\u004b\u0043\u0041\u0051\u0045A\u006dF\u0055\u0069\u0079\u0064\u0037\u0062\u0035\u0058\u006a\u0070\u006b\u0050\u0035\u0052\u0061\u0070\u0034\u0077\u000a\u0044\u0063\u0031d\u0079\u007a\u0049\u0051\u0034\u004c\u0065\u006b\u0078\u0072\u0076\u0079\u0074\u006e\u0045\u004d\u0070\u004e\u0055\u0062\u006f\u0036i\u0041\u0037\u0034\u0056\u0038\u0072\u0075\u005a\u004f\u0076\u0072\u0053\u0063\u0073\u0066\u0032\u0051\u0065\u004e9\u002f\u0071r\u0055\u0047\u0038\u0071\u0045\u0062\u0055\u0057\u0064\u006f\u0045\u0059\u0071+\u000a\u006f\u0074\u0046\u004e\u0041\u0046N\u0078\u006c\u0047\u0062\u0078\u0062\u0044\u0048\u0063\u0064\u0047\u0056\u0061\u004d\u0030\u004f\u0058\u0064\u0058g\u0044y\u004c5\u0061\u0049\u0045\u0061\u0067\u004c\u0030\u0063\u0035\u0070\u0077\u006a\u0049\u0064\u0050G\u0049\u006e\u0034\u0036\u0066\u0037\u0038\u0065\u004d\u004a\u002b\u004a\u006b\u0064\u0063\u0070\u0044\n\u0044\u004a\u0061\u0071\u0059\u0058d\u0072\u007a5\u004b\u0065\u0073\u0068\u006aS\u0069\u0049\u0061\u0061\u0037\u006d\u0065\u006e\u0042\u0049\u0041\u0058\u0053\u0034\u0055\u0046\u0078N\u0066H\u0068\u004e\u0030\u0048\u0043\u0059\u005a\u0059\u0071\u0051\u0047\u0037\u0062K+\u0073\u0035\u0072R\u0048\u006f\u006e\u0079\u0064\u004eW\u0045\u0047\u000a\u0048\u0038M\u0079\u0076\u00722\u0070\u0079\u0061\u0032K\u0072\u004d\u0075m\u0066\u006d\u0041\u0078\u0055\u0042\u0036\u0066\u0065\u006e\u0043\u002f4\u004f\u0030\u0057\u00728\u0067\u0066\u0050\u004f\u0055\u0038R\u0069\u0074\u006d\u0062\u0044\u0076\u0051\u0050\u0049\u0052\u0058\u004fL\u0034\u0076\u0054B\u0072\u0042\u0064\u0062a\u0041\u000a9\u006e\u0077\u004e\u0050\u002b\u0069\u002f\u002f\u0032\u0030\u004d\u00542\u0062\u0078\u006d\u0065\u0057\u0042\u002b\u0067\u0070\u0063\u0045\u0068G\u0070\u0058\u005a7\u0033\u0033\u0061\u007a\u0051\u0078\u0072\u0043\u0033\u004a\u0034\u0076\u0033C\u005a\u006d\u0045\u004eS\u0074\u0044\u004b\u002f\u004b\u0044\u0053\u0050\u004b\u0055\u0047\u0066\u00756\u000a\u0066\u0077I\u0044\u0041\u0051\u0041\u0042\u000a\u002d\u002d\u002d\u002d\u002dE\u004e\u0044\u0020\u0050\u0055\u0042\u004c\u0049\u0043 \u004b\u0045Y\u002d\u002d\u002d\u002d\u002d\n";
|
|
func _bfda (_ebc ,_gegg []byte )([]byte ,error ){_gab :=make ([]byte ,_ec .URLEncoding .DecodedLen (len (_gegg )));_cccg ,_baec :=_ec .URLEncoding .Decode (_gab ,_gegg );if _baec !=nil {return nil ,_baec ;};_gab =_gab [:_cccg ];_baeb ,_baec :=_g .NewCipher (_ebc );
|
|
if _baec !=nil {return nil ,_baec ;};if len (_gab )< _g .BlockSize {return nil ,_eg .New ("c\u0069p\u0068\u0065\u0072\u0074\u0065\u0078\u0074\u0020t\u006f\u006f\u0020\u0073ho\u0072\u0074");};_gdb :=_gab [:_g .BlockSize ];_gab =_gab [_g .BlockSize :];_gec :=_ccf .NewCFBDecrypter (_baeb ,_gdb );
|
|
_gec .XORKeyStream (_gab ,_gab );return _gab ,nil ;};func GetMeteredState ()(MeteredStatus ,error ){if _aagf ==nil {return MeteredStatus {},_eg .New ("\u006c\u0069\u0063\u0065ns\u0065\u0020\u006b\u0065\u0079\u0020\u006e\u006f\u0074\u0020\u0073\u0065\u0074");
|
|
};if !_aagf ._bbg ||len (_aagf ._df )==0{return MeteredStatus {},_eg .New ("\u0061p\u0069 \u006b\u0065\u0079\u0020\u006e\u006f\u0074\u0020\u0073\u0065\u0074");};_fag ,_ad :=_gfa .loadState (_aagf ._df );if _ad !=nil {_fe .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_ad );
|
|
return MeteredStatus {},_ad ;};if _fag .Docs > 0{_cbc :=_faf ("","",true );if _cbc !=nil {return MeteredStatus {},_cbc ;};};_deeb .Lock ();defer _deeb .Unlock ();_cfg :=_egg ();_cfg ._dda =_aagf ._df ;_gfg ,_ad :=_cfg .getStatus ();if _ad !=nil {return MeteredStatus {},_ad ;
|
|
};if !_gfg .Valid {return MeteredStatus {},_eg .New ("\u006b\u0065\u0079\u0020\u006e\u006f\u0074\u0020\u0076\u0061\u006c\u0069\u0064");};_feea :=MeteredStatus {OK :true ,Credits :_gfg .OrgCredits ,Used :_gfg .OrgUsed };return _feea ,nil ;};type MeteredStatus struct{OK bool ;
|
|
Credits int64 ;Used int64 ;};func (_fee *meteredClient )getStatus ()(meteredStatusResp ,error ){var _eec meteredStatusResp ;_gbdd :=_fee ._bfa +"\u002fm\u0065t\u0065\u0072\u0065\u0064\u002f\u0073\u0074\u0061\u0074\u0075\u0073";var _gge meteredStatusForm ;
|
|
_dbd ,_cdaa :=_ecb .Marshal (_gge );if _cdaa !=nil {return _eec ,_cdaa ;};_gcd ,_cdaa :=_baf (_dbd );if _cdaa !=nil {return _eec ,_cdaa ;};_ceacb ,_cdaa :=_fb .NewRequest ("\u0050\u004f\u0053\u0054",_gbdd ,_gcd );if _cdaa !=nil {return _eec ,_cdaa ;};_ceacb .Header .Add ("\u0043\u006f\u006et\u0065\u006e\u0074\u002d\u0054\u0079\u0070\u0065","\u0061\u0070p\u006c\u0069\u0063a\u0074\u0069\u006f\u006e\u002f\u006a\u0073\u006f\u006e");
|
|
_ceacb .Header .Add ("\u0043\u006fn\u0074\u0065\u006et\u002d\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067","\u0067\u007a\u0069\u0070");_ceacb .Header .Add ("\u0041c\u0063e\u0070\u0074\u002d\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067","\u0067\u007a\u0069\u0070");
|
|
_ceacb .Header .Add ("\u0058-\u0041\u0050\u0049\u002d\u004b\u0045Y",_fee ._dda );_abb ,_cdaa :=_fee ._fbf .Do (_ceacb );if _cdaa !=nil {return _eec ,_cdaa ;};defer _abb .Body .Close ();if _abb .StatusCode !=200{return _eec ,_cca .Errorf ("\u0066\u0061i\u006c\u0065\u0064\u0020t\u006f\u0020c\u0068\u0065\u0063\u006b\u0069\u006e\u002c\u0020s\u0074\u0061\u0074\u0075\u0073\u0020\u0063\u006f\u0064\u0065\u0020\u0069s\u003a\u0020\u0025\u0064",_abb .StatusCode );
|
|
};_dcb ,_cdaa :=_ffef (_abb );if _cdaa !=nil {return _eec ,_cdaa ;};_cdaa =_ecb .Unmarshal (_dcb ,&_eec );if _cdaa !=nil {return _eec ,_cdaa ;};return _eec ,nil ;};func (_ade defaultStateHolder )loadState (_dcee string )(reportState ,error ){_ddee :=_dgg ();
|
|
if len (_ddee )==0{return reportState {},_eg .New ("\u0068\u006fm\u0065\u0020\u0064i\u0072\u0020\u006e\u006f\u0074\u0020\u0073\u0065\u0074");};_egad :=_ed .Join (_ddee ,"\u002eu\u006e\u0069\u0064\u006f\u0063");_beac :=_b .MkdirAll (_egad ,0777);if _beac !=nil {return reportState {},_beac ;
|
|
};if len (_dcee )< 20{return reportState {},_eg .New ("i\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006b\u0065\u0079");};_dad :=[]byte (_dcee );_ecdf :=_dd .Sum512_256 (_dad [:20]);_dbf :=_fd .EncodeToString (_ecdf [:]);_edd :=_ed .Join (_egad ,_dbf );
|
|
_aag ,_beac :=_af .ReadFile (_edd );if _beac !=nil {if _b .IsNotExist (_beac ){return reportState {},nil ;};_fe .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_beac );return reportState {},_eg .New ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u0064\u0061\u0074\u0061");
|
|
};const _acb ="\u0068\u00619\u004e\u004b\u0038]\u0052\u0062\u004c\u002a\u006d\u0034\u004c\u004b\u0057";_aag ,_beac =_bfda ([]byte (_acb ),_aag );if _beac !=nil {return reportState {},_beac ;};var _eda reportState ;_beac =_ecb .Unmarshal (_aag ,&_eda );
|
|
if _beac !=nil {_fe .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0064\u0061\u0074\u0061\u003a\u0020\u0025\u0076",_beac );return reportState {},_eg .New ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u0064\u0061\u0074\u0061");
|
|
};return _eda ,nil ;};var _cga map[string ]struct{};func (_ddd *LicenseKey )ToString ()string {if _ddd ._bbg {return "M\u0065t\u0065\u0072\u0065\u0064\u0020\u0073\u0075\u0062s\u0063\u0072\u0069\u0070ti\u006f\u006e";};_fac :=_cca .Sprintf ("\u004ci\u0063e\u006e\u0073\u0065\u0020\u0049\u0064\u003a\u0020\u0025\u0073\u000a",_ddd .LicenseId );
|
|
_fac +=_cca .Sprintf ("\u0043\u0075s\u0074\u006f\u006de\u0072\u0020\u0049\u0064\u003a\u0020\u0025\u0073\u000a",_ddd .CustomerId );_fac +=_cca .Sprintf ("\u0043u\u0073t\u006f\u006d\u0065\u0072\u0020N\u0061\u006de\u003a\u0020\u0025\u0073\u000a",_ddd .CustomerName );
|
|
_fac +=_cca .Sprintf ("\u0054i\u0065\u0072\u003a\u0020\u0025\u0073\n",_ddd .Tier );_fac +=_cca .Sprintf ("\u0043r\u0065a\u0074\u0065\u0064\u0020\u0041\u0074\u003a\u0020\u0025\u0073\u000a",_fe .UtcTimeFormat (_ddd .CreatedAt ));if _ddd .ExpiresAt ==nil {_fac +="\u0045x\u0070i\u0072\u0065\u0073\u0020\u0041t\u003a\u0020N\u0065\u0076\u0065\u0072\u000a";
|
|
}else {_fac +=_cca .Sprintf ("\u0045x\u0070i\u0072\u0065\u0073\u0020\u0041\u0074\u003a\u0020\u0025\u0073\u000a",_fe .UtcTimeFormat (*_ddd .ExpiresAt ));};_fac +=_cca .Sprintf ("\u0043\u0072\u0065\u0061\u0074\u006f\u0072\u003a\u0020\u0025\u0073\u0020<\u0025\u0073\u003e\u000a",_ddd .CreatorName ,_ddd .CreatorEmail );
|
|
return _fac ;};func (_gbd *LicenseKey )IsLicensed ()bool {return _gbd .Tier !=LicenseTierUnlicensed ||_gbd ._bbg };func SetMeteredKey (apiKey string )error {if len (apiKey )==0{_fe .Log .Error ("\u004d\u0065\u0074\u0065\u0072e\u0064\u0020\u004c\u0069\u0063\u0065\u006e\u0073\u0065\u0020\u0041\u0050\u0049 \u004b\u0065\u0079\u0020\u006d\u0075\u0073\u0074\u0020\u006e\u006f\u0074\u0020\u0062\u0065\u0020\u0065\u006d\u0070\u0074\u0079");
|
|
_fe .Log .Error ("\u002d\u0020\u0047\u0072\u0061\u0062\u0020\u006f\u006e\u0065\u0020\u0069\u006e\u0020\u0074h\u0065\u0020\u0046\u0072\u0065\u0065\u0020\u0054\u0069\u0065\u0072\u0020\u0061t\u0020\u0068\u0074\u0074\u0070\u0073\u003a\u002f\u002f\u0063\u006c\u006fud\u002e\u0075\u006e\u0069\u0064\u006f\u0063\u002e\u0069\u006f");
|
|
return _cca .Errorf ("\u006de\u0074\u0065\u0072e\u0064\u0020\u006ci\u0063en\u0073\u0065\u0020\u0061\u0070\u0069\u0020k\u0065\u0079\u0020\u006d\u0075\u0073\u0074\u0020\u006e\u006f\u0074\u0020\u0062\u0065\u0020\u0065\u006d\u0070\u0074\u0079\u003a\u0020\u0063\u0072\u0065\u0061\u0074\u0065 o\u006ee\u0020\u0061\u0074\u0020\u0068\u0074t\u0070\u0073\u003a\u002f\u002fc\u006c\u006f\u0075\u0064\u002e\u0075\u006e\u0069\u0064\u006f\u0063.\u0069\u006f");
|
|
};if _aagf !=nil &&(_aagf ._bbg ||_aagf .Tier !=LicenseTierUnlicensed ){_fe .Log .Error ("\u0045\u0052\u0052\u004f\u0052:\u0020\u0043\u0061\u006e\u006eo\u0074 \u0073\u0065\u0074\u0020\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0020\u006b\u0065\u0079\u0020\u0074\u0077\u0069c\u0065\u0020\u002d\u0020\u0053\u0068\u006f\u0075\u006c\u0064\u0020\u006a\u0075\u0073\u0074\u0020\u0069\u006e\u0069\u0074\u0069\u0061\u006c\u0069z\u0065\u0020\u006f\u006e\u0063\u0065");
|
|
return _eg .New ("\u006c\u0069\u0063en\u0073\u0065\u0020\u006b\u0065\u0079\u0020\u0061\u006c\u0072\u0065\u0061\u0064\u0079\u0020\u0073\u0065\u0074");};_bde :=_egg ();_bde ._dda =apiKey ;_dac ,_cgbf :=_bde .getStatus ();if _cgbf !=nil {return _cgbf ;};if !_dac .Valid {return _eg .New ("\u006b\u0065\u0079\u0020\u006e\u006f\u0074\u0020\u0076\u0061\u006c\u0069\u0064");
|
|
};_edgd :=&LicenseKey {_bbg :true ,_df :apiKey };_aagf =_edgd ;return nil ;};func _agg (_da string ,_cdc string ,_ecf string )(string ,error ){_gca :=_ce .Index (_ecf ,_da );if _gca ==-1{return "",_cca .Errorf ("\u0068\u0065a\u0064\u0065\u0072 \u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064");
|
|
};_db :=_ce .Index (_ecf ,_cdc );if _db ==-1{return "",_cca .Errorf ("\u0066\u006fo\u0074\u0065\u0072 \u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064");};_aed :=_gca +len (_da )+1;return _ecf [_aed :_db -1],nil ;};func GetLicenseKey ()*LicenseKey {if _aagf ==nil {return nil ;
|
|
};_aab :=*_aagf ;return &_aab ;};type meteredUsageCheckinForm struct{Instance string `json:"inst"`;Next string `json:"next"`;UsageNumber int `json:"usage_number"`;NumFailed int64 `json:"num_failed"`;Hostname string `json:"hostname"`;LocalIP string `json:"local_ip"`;
|
|
MacAddress string `json:"mac_address"`;Package string `json:"package"`;PackageVersion string `json:"package_version"`;Usage map[string ]int `json:"u"`;};type reportState struct{Instance string `json:"inst"`;Next string `json:"n"`;Docs int64 `json:"d"`;
|
|
NumErrors int64 `json:"e"`;LimitDocs bool `json:"ld"`;RemainingDocs int64 `json:"rd"`;LastReported _cc .Time `json:"lr"`;LastWritten _cc .Time `json:"lw"`;Usage map[string ]int `json:"u"`;};type LicenseKey struct{LicenseId string `json:"license_id"`;CustomerId string `json:"customer_id"`;
|
|
CustomerName string `json:"customer_name"`;Tier string `json:"tier"`;CreatedAt _cc .Time `json:"-"`;CreatedAtInt int64 `json:"created_at"`;ExpiresAt *_cc .Time `json:"-"`;ExpiresAtInt int64 `json:"expires_at"`;CreatedBy string `json:"created_by"`;CreatorName string `json:"creator_name"`;
|
|
CreatorEmail string `json:"creator_email"`;UniPDF bool `json:"unipdf"`;UniOffice bool `json:"unioffice"`;UniHTML bool `json:"unihtml"`;Trial bool `json:"trial"`;_bbg bool ;_df string ;};type meteredUsageCheckinResp struct{Instance string `json:"inst"`;
|
|
Next string `json:"next"`;Success bool `json:"success"`;Message string `json:"message"`;RemainingDocs int `json:"rd"`;LimitDocs bool `json:"ld"`;};func _ccag (_cbaf ,_dccf []byte )([]byte ,error ){_egdb ,_edb :=_g .NewCipher (_cbaf );if _edb !=nil {return nil ,_edb ;
|
|
};_fgad :=make ([]byte ,_g .BlockSize +len (_dccf ));_efd :=_fgad [:_g .BlockSize ];if _ ,_fefd :=_f .ReadFull (_ab .Reader ,_efd );_fefd !=nil {return nil ,_fefd ;};_bbe :=_ccf .NewCFBEncrypter (_egdb ,_efd );_bbe .XORKeyStream (_fgad [_g .BlockSize :],_dccf );
|
|
_dcba :=make ([]byte ,_ec .URLEncoding .EncodedLen (len (_fgad )));_ec .URLEncoding .Encode (_dcba ,_fgad );return _dcba ,nil ;};func SetLicenseKey (content string ,customerName string )error {_eb ,_gde :=_cf (content );if _gde !=nil {_fe .Log .Error ("\u004c\u0069c\u0065\u006e\u0073\u0065\u0020\u0063\u006f\u0064\u0065\u0020\u0064\u0065\u0063\u006f\u0064\u0065\u0020\u0065\u0072\u0072\u006f\u0072: \u0025\u0076",_gde );
|
|
return _gde ;};if !_ce .EqualFold (_eb .CustomerName ,customerName ){_fe .Log .Error ("L\u0069ce\u006es\u0065 \u0063\u006f\u0064\u0065\u0020i\u0073\u0073\u0075e\u0020\u002d\u0020\u0043\u0075s\u0074\u006f\u006de\u0072\u0020\u006e\u0061\u006d\u0065\u0020\u006d\u0069\u0073\u006da\u0074\u0063\u0068, e\u0078\u0070\u0065\u0063\u0074\u0065d\u0020\u0027\u0025\u0073\u0027\u002c\u0020\u0062\u0075\u0074\u0020\u0067o\u0074 \u0027\u0025\u0073\u0027",customerName ,_eb .CustomerName );
|
|
return _cca .Errorf ("\u0063\u0075\u0073\u0074\u006fm\u0065\u0072\u0020\u006e\u0061\u006d\u0065\u0020\u006d\u0069\u0073\u006d\u0061t\u0063\u0068\u002c\u0020\u0065\u0078\u0070\u0065\u0063\u0074\u0065\u0064\u0020\u0027\u0025\u0073\u0027\u002c\u0020\u0062\u0075\u0074\u0020\u0067\u006f\u0074\u0020\u0027\u0025\u0073'",customerName ,_eb .CustomerName );
|
|
};_gde =_eb .Validate ();if _gde !=nil {_fe .Log .Error ("\u004c\u0069\u0063\u0065\u006e\u0073e\u0020\u0063\u006f\u0064\u0065\u0020\u0076\u0061\u006c\u0069\u0064\u0061\u0074i\u006f\u006e\u0020\u0065\u0072\u0072\u006fr\u003a\u0020\u0025\u0076",_gde );return _gde ;
|
|
};_aagf =&_eb ;return nil ;};const _gbf ="\u0055\u004e\u0049\u0050DF\u005f\u004c\u0049\u0043\u0045\u004e\u0053\u0045\u005f\u0050\u0041\u0054\u0048";func _afe ()(_d .IP ,error ){_bfd ,_fga :=_d .Dial ("\u0075\u0064\u0070","\u0038\u002e\u0038\u002e\u0038\u002e\u0038\u003a\u0038\u0030");
|
|
if _fga !=nil {return nil ,_fga ;};defer _bfd .Close ();_gdf :=_bfd .LocalAddr ().(*_d .UDPAddr );return _gdf .IP ,nil ;};const (_cgb ="\u002d\u002d\u002d--\u0042\u0045\u0047\u0049\u004e\u0020\u0055\u004e\u0049D\u004fC\u0020L\u0049C\u0045\u004e\u0053\u0045\u0020\u004b\u0045\u0059\u002d\u002d\u002d\u002d\u002d";
|
|
_ee ="\u002d\u002d\u002d\u002d\u002d\u0045\u004e\u0044\u0020\u0055\u004e\u0049\u0044\u004f\u0043 \u004cI\u0043\u0045\u004e\u0053\u0045\u0020\u004b\u0045\u0059\u002d\u002d\u002d\u002d\u002d";);func _egg ()*meteredClient {_gfd :=meteredClient {_bfa :"h\u0074\u0074\u0070\u0073\u003a\u002f/\u0063\u006c\u006f\u0075\u0064\u002e\u0075\u006e\u0069d\u006f\u0063\u002ei\u006f/\u0061\u0070\u0069",_fbf :&_fb .Client {Timeout :30*_cc .Second }};
|
|
if _bfe :=_b .Getenv ("\u0055N\u0049\u0044\u004f\u0043_\u004c\u0049\u0043\u0045\u004eS\u0045_\u0053E\u0052\u0056\u0045\u0052\u005f\u0055\u0052L");_ce .HasPrefix (_bfe ,"\u0068\u0074\u0074\u0070"){_gfd ._bfa =_bfe ;};return &_gfd ;};const _dff ="U\u004eI\u0050\u0044\u0046\u005f\u0043\u0055\u0053\u0054O\u004d\u0045\u0052\u005fNA\u004d\u0045";
|
|
func _cef (_gf string ,_ff []byte )(string ,error ){_afg ,_ :=_bf .Decode ([]byte (_gf ));if _afg ==nil {return "",_cca .Errorf ("\u0050\u0072\u0069\u0076\u004b\u0065\u0079\u0020\u0066a\u0069\u006c\u0065\u0064");};_ffc ,_ffb :=_dg .ParsePKCS1PrivateKey (_afg .Bytes );
|
|
if _ffb !=nil {return "",_ffb ;};_ffbb :=_dd .New ();_ffbb .Write (_ff );_ddb :=_ffbb .Sum (nil );_gg ,_ffb :=_gb .SignPKCS1v15 (_ab .Reader ,_ffc ,_a .SHA512 ,_ddb );if _ffb !=nil {return "",_ffb ;};_cefc :=_ec .StdEncoding .EncodeToString (_ff );_cefc +="\u000a\u002b\u000a";
|
|
_cefc +=_ec .StdEncoding .EncodeToString (_gg );return _cefc ,nil ;};func (_fgc defaultStateHolder )updateState (_egaf ,_acc ,_feb string ,_beg int ,_dfe bool ,_egga int ,_agfd int ,_ccc _cc .Time ,_bff map[string ]int )error {_dee :=_dgg ();if len (_dee )==0{return _eg .New ("\u0068\u006fm\u0065\u0020\u0064i\u0072\u0020\u006e\u006f\u0074\u0020\u0073\u0065\u0074");
|
|
};_bcc :=_ed .Join (_dee ,"\u002eu\u006e\u0069\u0064\u006f\u0063");_bec :=_b .MkdirAll (_bcc ,0777);if _bec !=nil {return _bec ;};if len (_egaf )< 20{return _eg .New ("i\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006b\u0065\u0079");};_aac :=[]byte (_egaf );
|
|
_faa :=_dd .Sum512_256 (_aac [:20]);_dcc :=_fd .EncodeToString (_faa [:]);_aedg :=_ed .Join (_bcc ,_dcc );var _ddc reportState ;_ddc .Docs =int64 (_beg );_ddc .NumErrors =int64 (_agfd );_ddc .LimitDocs =_dfe ;_ddc .RemainingDocs =int64 (_egga );_ddc .LastWritten =_cc .Now ().UTC ();
|
|
_ddc .LastReported =_ccc ;_ddc .Instance =_acc ;_ddc .Next =_feb ;_ddc .Usage =_bff ;_eecg ,_bec :=_ecb .Marshal (_ddc );if _bec !=nil {return _bec ;};const _bbd ="\u0068\u00619\u004e\u004b\u0038]\u0052\u0062\u004c\u002a\u006d\u0034\u004c\u004b\u0057";
|
|
_eecg ,_bec =_ccag ([]byte (_bbd ),_eecg );if _bec !=nil {return _bec ;};_bec =_af .WriteFile (_aedg ,_eecg ,0600);if _bec !=nil {return _bec ;};return nil ;};type stateLoader interface{loadState (_eae string )(reportState ,error );updateState (_fef ,_ggf ,_afgd string ,_ac int ,_ga bool ,_dca int ,_ffbc int ,_cdb _cc .Time ,_adf map[string ]int )error ;
|
|
};var _deeb =&_ea .Mutex {};var _affd =_cc .Date (2010,1,1,0,0,0,0,_cc .UTC );var _abf map[string ]int ;var _aef =_cc .Date (2019,6,6,0,0,0,0,_cc .UTC );func MakeUnlicensedKey ()*LicenseKey {_ecd :=LicenseKey {};_ecd .CustomerName ="\u0055\u006e\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0064";
|
|
_ecd .Tier =LicenseTierUnlicensed ;_ecd .CreatedAt =_cc .Now ().UTC ();_ecd .CreatedAtInt =_ecd .CreatedAt .Unix ();return &_ecd ;};func (_dde *meteredClient )checkinUsage (_dgb meteredUsageCheckinForm )(meteredUsageCheckinResp ,error ){_dgb .Package ="\u0075\u006e\u0069\u0070\u0064\u0066";
|
|
_dgb .PackageVersion =_fe .Version ;var _bc meteredUsageCheckinResp ;_bea :=_dde ._bfa +"\u002f\u006d\u0065\u0074er\u0065\u0064\u002f\u0075\u0073\u0061\u0067\u0065\u005f\u0063\u0068\u0065\u0063\u006bi\u006e";_bfb ,_agf :=_ecb .Marshal (_dgb );if _agf !=nil {return _bc ,_agf ;
|
|
};_gd ,_agf :=_baf (_bfb );if _agf !=nil {return _bc ,_agf ;};_dce ,_agf :=_fb .NewRequest ("\u0050\u004f\u0053\u0054",_bea ,_gd );if _agf !=nil {return _bc ,_agf ;};_dce .Header .Add ("\u0043\u006f\u006et\u0065\u006e\u0074\u002d\u0054\u0079\u0070\u0065","\u0061\u0070p\u006c\u0069\u0063a\u0074\u0069\u006f\u006e\u002f\u006a\u0073\u006f\u006e");
|
|
_dce .Header .Add ("\u0043\u006fn\u0074\u0065\u006et\u002d\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067","\u0067\u007a\u0069\u0070");_dce .Header .Add ("\u0041c\u0063e\u0070\u0074\u002d\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067","\u0067\u007a\u0069\u0070");
|
|
_dce .Header .Add ("\u0058-\u0041\u0050\u0049\u002d\u004b\u0045Y",_dde ._dda );_fc ,_agf :=_dde ._fbf .Do (_dce );if _agf !=nil {return _bc ,_agf ;};defer _fc .Body .Close ();if _fc .StatusCode !=200{return _bc ,_cca .Errorf ("\u0066\u0061i\u006c\u0065\u0064\u0020t\u006f\u0020c\u0068\u0065\u0063\u006b\u0069\u006e\u002c\u0020s\u0074\u0061\u0074\u0075\u0073\u0020\u0063\u006f\u0064\u0065\u0020\u0069s\u003a\u0020\u0025\u0064",_fc .StatusCode );
|
|
};_cge ,_agf :=_ffef (_fc );if _agf !=nil {return _bc ,_agf ;};_agf =_ecb .Unmarshal (_cge ,&_bc );if _agf !=nil {return _bc ,_agf ;};return _bc ,nil ;};var _gfa stateLoader =defaultStateHolder {};func _faf (_egb string ,_afa string ,_dae bool )error {if _aagf ==nil {return _eg .New ("\u006e\u006f\u0020\u006c\u0069\u0063\u0065\u006e\u0073e\u0020\u006b\u0065\u0079");
|
|
};if !_aagf ._bbg ||len (_aagf ._df )==0{return nil ;};if len (_egb )==0&&!_dae {return _eg .New ("\u0064\u006f\u0063\u004b\u0065\u0079\u0020\u006e\u006ft\u0020\u0073\u0065\u0074");};_deeb .Lock ();defer _deeb .Unlock ();if _cga ==nil {_cga =map[string ]struct{}{};
|
|
};if _abf ==nil {_abf =map[string ]int {};};_dcf :=0;if !_dae {_ ,_gba :=_cga [_egb ];if !_gba {_cga [_egb ]=struct{}{};_dcf ++;};if _dcf ==0{return nil ;};_abf [_afa ]++;};_dfg :=_cc .Now ();_dcae ,_ece :=_gfa .loadState (_aagf ._df );if _ece !=nil {_fe .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_ece );
|
|
return _ece ;};if _dcae .Usage ==nil {_dcae .Usage =map[string ]int {};};for _fec ,_fae :=range _abf {_dcae .Usage [_fec ]+=_fae ;};_abf =nil ;const _ef =24*_cc .Hour ;const _cfa =3*24*_cc .Hour ;if len (_dcae .Instance )==0||_dfg .Sub (_dcae .LastReported )> _ef ||(_dcae .LimitDocs &&_dcae .RemainingDocs <=_dcae .Docs +int64 (_dcf ))||_dae {_fgb ,_aacc :=_b .Hostname ();
|
|
if _aacc !=nil {return _aacc ;};_gbae :=_dcae .Docs ;_egd ,_gdg ,_aacc :=_cba ();if _aacc !=nil {return _aacc ;};_fg .Strings (_gdg );_fg .Strings (_egd );_dcec ,_aacc :=_afe ();if _aacc !=nil {return _aacc ;};_ca :=false ;for _ ,_def :=range _gdg {if _def ==_dcec .String (){_ca =true ;
|
|
};};if !_ca {_gdg =append (_gdg ,_dcec .String ());};_ba :=_egg ();_ba ._dda =_aagf ._df ;_gbae +=int64 (_dcf );_cgc :=meteredUsageCheckinForm {Instance :_dcae .Instance ,Next :_dcae .Next ,UsageNumber :int (_gbae ),NumFailed :_dcae .NumErrors ,Hostname :_fgb ,LocalIP :_ce .Join (_gdg ,"\u002c\u0020"),MacAddress :_ce .Join (_egd ,"\u002c\u0020"),Package :"\u0075\u006e\u0069\u0070\u0064\u0066",PackageVersion :_fe .Version ,Usage :_dcae .Usage };
|
|
if len (_egd )==0{_cgc .MacAddress ="\u006e\u006f\u006e\u0065";};_cbb :=int64 (0);_bfeg :=_dcae .NumErrors ;_bae :=_dfg ;_aace :=0;_baa :=_dcae .LimitDocs ;_bfec ,_aacc :=_ba .checkinUsage (_cgc );if _aacc !=nil {if _dfg .Sub (_dcae .LastReported )> _cfa {return _eg .New ("\u0074\u006f\u006f\u0020\u006c\u006f\u006e\u0067\u0020\u0073\u0069\u006e\u0063\u0065\u0020\u006c\u0061\u0073\u0074\u0020\u0073\u0075\u0063\u0063e\u0073\u0073\u0066\u0075\u006c \u0063\u0068e\u0063\u006b\u0069\u006e");
|
|
};_cbb =_gbae ;_bfeg ++;_bae =_dcae .LastReported ;}else {_baa =_bfec .LimitDocs ;_aace =_bfec .RemainingDocs ;_bfeg =0;};if len (_bfec .Instance )==0{_bfec .Instance =_cgc .Instance ;};if len (_bfec .Next )==0{_bfec .Next =_cgc .Next ;};_aacc =_gfa .updateState (_ba ._dda ,_bfec .Instance ,_bfec .Next ,int (_cbb ),_baa ,_aace ,int (_bfeg ),_bae ,nil );
|
|
if _aacc !=nil {return _aacc ;};if !_bfec .Success {return _cca .Errorf ("\u0065r\u0072\u006f\u0072\u003a\u0020\u0025s",_bfec .Message );};}else {_ece =_gfa .updateState (_aagf ._df ,_dcae .Instance ,_dcae .Next ,int (_dcae .Docs )+_dcf ,_dcae .LimitDocs ,int (_dcae .RemainingDocs ),int (_dcae .NumErrors ),_dcae .LastReported ,_dcae .Usage );
|
|
if _ece !=nil {return _ece ;};};return nil ;};func _afb (_gded *_fb .Response )(_f .ReadCloser ,error ){var _ege error ;var _fafc _f .ReadCloser ;switch _ce .ToLower (_gded .Header .Get ("\u0043\u006fn\u0074\u0065\u006et\u002d\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067")){case "\u0067\u007a\u0069\u0070":_fafc ,_ege =_c .NewReader (_gded .Body );
|
|
if _ege !=nil {return _fafc ,_ege ;};defer _fafc .Close ();default:_fafc =_gded .Body ;};return _fafc ,nil ;};func TrackUse (useKey string ){if _aagf ==nil {return ;};if !_aagf ._bbg ||len (_aagf ._df )==0{return ;};if len (useKey )==0{return ;};_deeb .Lock ();
|
|
defer _deeb .Unlock ();if _abf ==nil {_abf =map[string ]int {};};_abf [useKey ]++;};const (LicenseTierUnlicensed ="\u0075\u006e\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0064";LicenseTierCommunity ="\u0063o\u006d\u006d\u0075\u006e\u0069\u0074y";LicenseTierIndividual ="\u0069\u006e\u0064\u0069\u0076\u0069\u0064\u0075\u0061\u006c";
|
|
LicenseTierBusiness ="\u0062\u0075\u0073\u0069\u006e\u0065\u0073\u0073";);func _baf (_bgc []byte )(_f .Reader ,error ){_gdef :=new (_cg .Buffer );_aba :=_c .NewWriter (_gdef );_aba .Write (_bgc );_bfab :=_aba .Close ();if _bfab !=nil {return nil ,_bfab ;
|
|
};return _gdef ,nil ;};func init (){_beae :=_b .Getenv (_gbf );_cdae :=_b .Getenv (_dff );if len (_beae )==0||len (_cdae )==0{return ;};_gdc ,_agd :=_af .ReadFile (_beae );if _agd !=nil {_fe .Log .Error ("\u0055\u006eab\u006c\u0065\u0020t\u006f\u0020\u0072\u0065ad \u006cic\u0065\u006e\u0073\u0065\u0020\u0063\u006fde\u0020\u0066\u0069\u006c\u0065\u003a\u0020%\u0076",_agd );
|
|
return ;};_agd =SetLicenseKey (string (_gdc ),_cdae );if _agd !=nil {_fe .Log .Error ("\u0055\u006e\u0061b\u006c\u0065\u0020\u0074o\u0020\u006c\u006f\u0061\u0064\u0020\u006ci\u0063\u0065\u006e\u0073\u0065\u0020\u0063\u006f\u0064\u0065\u003a\u0020\u0025\u0076",_agd );
|
|
return ;};};func (_ega *LicenseKey )Validate ()error {if _ega ._bbg {return nil ;};if len (_ega .LicenseId )< 10{return _cca .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u006c\u0069\u0063\u0065\u006e\u0073\u0065\u003a\u0020L\u0069\u0063\u0065n\u0073e\u0020\u0049\u0064");
|
|
};if len (_ega .CustomerId )< 10{return _cca .Errorf ("\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u006c\u0069\u0063\u0065\u006e\u0073\u0065:\u0020C\u0075\u0073\u0074\u006f\u006d\u0065\u0072 \u0049\u0064");};if len (_ega .CustomerName )< 1{return _cca .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006c\u0069c\u0065\u006e\u0073\u0065\u003a\u0020\u0043u\u0073\u0074\u006f\u006d\u0065\u0072\u0020\u004e\u0061\u006d\u0065");
|
|
};if _affd .After (_ega .CreatedAt ){return _cca .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u003a\u0020\u0043\u0072\u0065\u0061\u0074\u0065\u0064 \u0041\u0074\u0020\u0069\u0073 \u0069\u006ev\u0061\u006c\u0069\u0064");
|
|
};if _ega .ExpiresAt ==nil {_de :=_ega .CreatedAt .AddDate (1,0,0);if _bd .After (_de ){_de =_bd ;};_ega .ExpiresAt =&_de ;};if _ega .CreatedAt .After (*_ega .ExpiresAt ){return _cca .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u003a\u0020\u0043\u0072\u0065\u0061\u0074\u0065\u0064\u0020\u0041\u0074 \u0063a\u006e\u006e\u006f\u0074 \u0062\u0065 \u0047\u0072\u0065\u0061\u0074\u0065\u0072\u0020\u0074\u0068\u0061\u006e\u0020\u0045\u0078\u0070\u0069\u0072\u0065\u0073\u0020\u0041\u0074");
|
|
};if _ega .isExpired (){return _cca .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020l\u0069\u0063\u0065ns\u0065\u003a\u0020\u0054\u0068\u0065 \u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0020\u0068\u0061\u0073\u0020\u0061\u006c\u0072e\u0061\u0064\u0079\u0020\u0065\u0078\u0070\u0069r\u0065\u0064");
|
|
};if len (_ega .CreatorName )< 1{return _cca .Errorf ("\u0069\u006ev\u0061\u006c\u0069\u0064\u0020\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u003a\u0020\u0043\u0072\u0065\u0061\u0074\u006f\u0072\u0020na\u006d\u0065");};if len (_ega .CreatorEmail )< 1{return _cca .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006c\u0069c\u0065\u006e\u0073\u0065\u003a\u0020\u0043r\u0065\u0061\u0074\u006f\u0072\u0020\u0065\u006d\u0061\u0069\u006c");
|
|
};if _ega .CreatedAt .After (_aef ){if !_ega .UniPDF {return _cca .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006c\u0069\u0063\u0065\u006e\u0073\u0065:\u0020\u0054\u0068\u0069\u0073\u0020\u0055\u006e\u0069\u0044\u006f\u0063\u0020k\u0065\u0079\u0020\u0069\u0073\u0020\u0069\u006e\u0076\u0061\u006c\u0069d \u0066\u006f\u0072\u0020\u0055\u006e\u0069\u0050\u0044\u0046");
|
|
};};return nil ;};func (_bed *LicenseKey )TypeToString ()string {if _bed ._bbg {return "M\u0065t\u0065\u0072\u0065\u0064\u0020\u0073\u0075\u0062s\u0063\u0072\u0069\u0070ti\u006f\u006e";};if _bed .Tier ==LicenseTierUnlicensed {return "\u0055\u006e\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0064";
|
|
};if _bed .Tier ==LicenseTierCommunity {return "\u0041\u0047PL\u0076\u0033\u0020O\u0070\u0065\u006e\u0020Sou\u0072ce\u0020\u0043\u006f\u006d\u006d\u0075\u006eit\u0079\u0020\u004c\u0069\u0063\u0065\u006es\u0065";};if _bed .Tier ==LicenseTierIndividual ||_bed .Tier =="\u0069\u006e\u0064i\u0065"{return "\u0043\u006f\u006dm\u0065\u0072\u0063\u0069a\u006c\u0020\u004c\u0069\u0063\u0065\u006es\u0065\u0020\u002d\u0020\u0049\u006e\u0064\u0069\u0076\u0069\u0064\u0075\u0061\u006c";
|
|
};return "\u0043\u006fm\u006d\u0065\u0072\u0063\u0069\u0061\u006c\u0020\u004c\u0069\u0063\u0065\u006e\u0073\u0065\u0020\u002d\u0020\u0042\u0075\u0073\u0069ne\u0073\u0073";};func _ffef (_aaab *_fb .Response )([]byte ,error ){var _ebd []byte ;_ebdb ,_dgd :=_afb (_aaab );
|
|
if _dgd !=nil {return _ebd ,_dgd ;};return _af .ReadAll (_ebdb );};func _cd (_aff string ,_dgc string )([]byte ,error ){var (_eeg int ;_ede string ;);for _ ,_ede =range []string {"\u000a\u002b\u000a","\u000d\u000a\u002b\r\u000a","\u0020\u002b\u0020"}{if _eeg =_ce .Index (_dgc ,_ede );
|
|
_eeg !=-1{break ;};};if _eeg ==-1{return nil ,_cca .Errorf ("\u0069\u006e\u0076al\u0069\u0064\u0020\u0069\u006e\u0070\u0075\u0074\u002c \u0073i\u0067n\u0061t\u0075\u0072\u0065\u0020\u0073\u0065\u0070\u0061\u0072\u0061\u0074\u006f\u0072");};_gc :=_dgc [:_eeg ];
|
|
_feg :=_eeg +len (_ede );_aa :=_dgc [_feg :];if _gc ==""||_aa ==""{return nil ,_cca .Errorf ("\u0069n\u0076\u0061l\u0069\u0064\u0020\u0069n\u0070\u0075\u0074,\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020or\u0069\u0067\u0069n\u0061\u006c \u006f\u0072\u0020\u0073\u0069\u0067n\u0061\u0074u\u0072\u0065");
|
|
};_fda ,_bg :=_ec .StdEncoding .DecodeString (_gc );if _bg !=nil {return nil ,_cca .Errorf ("\u0069\u006e\u0076\u0061li\u0064\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u006f\u0072\u0069\u0067\u0069\u006ea\u006c");};_ae ,_bg :=_ec .StdEncoding .DecodeString (_aa );
|
|
if _bg !=nil {return nil ,_cca .Errorf ("\u0069\u006e\u0076al\u0069\u0064\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065");};_cea ,_ :=_bf .Decode ([]byte (_aff ));if _cea ==nil {return nil ,_cca .Errorf ("\u0050\u0075\u0062\u004b\u0065\u0079\u0020\u0066\u0061\u0069\u006c\u0065\u0064");
|
|
};_bb ,_bg :=_dg .ParsePKIXPublicKey (_cea .Bytes );if _bg !=nil {return nil ,_bg ;};_ag :=_bb .(*_gb .PublicKey );if _ag ==nil {return nil ,_cca .Errorf ("\u0050u\u0062\u004b\u0065\u0079\u0020\u0063\u006f\u006e\u0076\u0065\u0072s\u0069\u006f\u006e\u0020\u0066\u0061\u0069\u006c\u0065\u0064");
|
|
};_aea :=_dd .New ();_aea .Write (_fda );_be :=_aea .Sum (nil );_bg =_gb .VerifyPKCS1v15 (_ag ,_a .SHA512 ,_be ,_ae );if _bg !=nil {return nil ,_bg ;};return _fda ,nil ;};var _aagf =MakeUnlicensedKey ();type defaultStateHolder struct{};func _cba ()([]string ,[]string ,error ){_eaee ,_fgd :=_d .Interfaces ();
|
|
if _fgd !=nil {return nil ,nil ,_fgd ;};var _geg []string ;var _deg []string ;for _ ,_fegb :=range _eaee {if _fegb .Flags &_d .FlagUp ==0||_cg .Equal (_fegb .HardwareAddr ,nil ){continue ;};_gdfc ,_efa :=_fegb .Addrs ();if _efa !=nil {return nil ,nil ,_efa ;
|
|
};_eef :=0;for _ ,_ffe :=range _gdfc {var _abe _d .IP ;switch _bee :=_ffe .(type ){case *_d .IPNet :_abe =_bee .IP ;case *_d .IPAddr :_abe =_bee .IP ;};if _abe .IsLoopback (){continue ;};if _abe .To4 ()==nil {continue ;};_deg =append (_deg ,_abe .String ());
|
|
_eef ++;};_fad :=_fegb .HardwareAddr .String ();if _fad !=""&&_eef > 0{_geg =append (_geg ,_fad );};};return _geg ,_deg ,nil ;}; |