Hello,

I found strage behavior around SecurityManager.

First, why security manager loads some secury keys at system start up?

SecurityManager>>startUp
    "Attempt to load existing keys"
    self loadSecurityKeys.
    (privateKeyPair == nil
        and:[self isInRestrictedMode not
        and:[self automaticKeyGeneration]]) ifTrue:[
            self generateKeyPairInBackground.
    ].

Second, I found bug (maybe)

When I on WindowsXP under user with russion name
SecurityManager>>loadSecurityKeys failed.
Reason is SecurityManager>>primSecureUserDirectory returns abracadabra
system path. I inspect it. It is not utf string, It is CP1251 encoded
string.
And when I change method to not encode pathname

secureUserDirectory
    "SecurityManager default secureUserDirectory"
    | dir |
    dir := self primSecureUserDirectory.
    ^ dir
        ifNil: [FileDirectory default pathName]
        ifNotNil: [(FilePath pathName: dir isEncoded: true)
asSqueakPathName]

to

secureUserDirectory
    "SecurityManager default secureUserDirectory"
    | dir |
    dir := self primSecureUserDirectory.
    ^ dir
        ifNil: [FileDirectory default pathName]
        ifNotNil: [(FilePath pathName: dir isEncoded: false)
asSqueakPathName]

System started without failures.

What I corrupt in system behavior with this changes?

And most interesting question. Why all this SecurityManager stuff needed for
system start up process?

Best regards,
Denis

Reply via email to