magma problems after installing KryptOn

Chris Muller chris at funkyobjects.org
Sat Feb 3 18:12:33 UTC 2007


Hi Juan!  I'm happy someone has expressed interest in actually having a
totally-secure database!  That is exactly where Magma is headed as I am
currently in the process of upgrading the code to tightly integrate
with a totally new version of KryptOn.

(I have just replace the year-old KryptOn page with a total-rewrite; an
early draft of the new documentation which clearly articulates the
philosophy, ideas and basic usage of KryptOn).

  http://wiki.squeak.org/squeak/5785

One thing not mentioned yet in the above documentation is how will
Magma (or any other KryptOn program) provide total transparency OR
total security via the same code.  If security is not needed or wanted,
then people want it to be invisible.

That's the promise I'm fulfilling now; the existing Magma 1.0 API's
will be preserved by utilizing the "anonymous" MakoNode, so that legacy
Magma programs can remain basically unchanged.  (The above link
describes what is a MakoNode).  Magma treats the anonymous node just as
any other (non-anonymous) node so this design allows clean code; i.e.,
no "isAnonymous ifTrue:[] ifFalse:[]" case-logic; all the security code
is always exercised either way, but the anonymous node just specifies
much smaller keys so that performance is not compromised.

Ability to have a secure database will open up the final phase of Magma
development before I can finally "go live"; support for 2-tier
programs.  This will be needed for creating a keyword-indexed archive
of the full history of the Squeak mailing list, accessible from within
the image, not just through a web browser.

The version of Magma/KryptOn that was posted last January is just an
initial prototype/sketch of such an integration; I would ignore it
because so much has been upgraded since then which I will be posting
soon.

The design is complete but I still have a fair amount of implementation
work to be completed, so it may be another month or two depending.. 
but it is my top priority, stay tuned..

 - Chris

--- "Burella Juan M." <juan.burella at gmail.com> wrote:

> Hello. I was using Magma (magmaVersion = 8). I want to implement some
> security in my application so after installing KryptOn-cmm.26 I ran
> into
> dependency problems, so as there isn't enough documentation of how to
> install it (at least isn't enough clear for me), I've installed all
> the
> packages from the repository (http://kilana.unibe.ch:8888/KryptOn). I
> have
> to ask, which packages and in what order should I install in order to
> this
> works properly?
> 
> I've seen some packages complements (loose methods?) their magma
> equivalents.
> Can anybody give a description of the packages inside this
> repository? And
> when it's necessary to install? I mean something really simple like
> "This implements X functionality"
> "Install this when you want X (fuzzy searching, handling exceptions,
> etc)."
> or
> "This is/could be needed by X"
> 
> KryptOn
> KryptOn tester
> KryptOnLoader
> KryptOnTesterLoader
> 
> Ma Armored Code
> Ma base additions
> Ma client server
> Ma exception handling
> Ma object serialization
> Ma proxy support
> Ma Squeak domain
> Ma special collections
> Ma time objects
> Ma traverse object graphs
> System overrides for ma object serialization
> 
> The following bug report was generated after executing this
> expression:
> 
> MagmaRepositoryController
>     create: 'd:\Sq3.8\magma\newDb\'
>     root: Dictionary new.
> 
> (before installing KryptOn, it worked fine)
> 
> 
> [BUG]MessageNotUnderstood(Object)>>doesNotUnderstand:
> #copyAttributes:from:
>
---------------------------------------------------------------------------
> 
> 2 February 2007 1:23:19 pm
> 
> VM: Win32 - a SmalltalkImage
> Image: Squeak3.8 [latest update: #6665]
> 
> SecurityManager state:
> Restricted: false
> FileAccess: true
> SocketAccess: true
> Working Dir D:\Sq3.8
> Trusted Dir D:\Sq3.8\jperez
> Untrusted Dir C:\My Squeak\jperez
> 
> MessageNotUnderstood(Object)>>doesNotUnderstand:
> #copyAttributes:from:
>     Receiver: MessageNotUnderstood
>     Arguments and temporary variables:
>         aMessage:     copyAttributes: #('messageText' 'tag' 'message'
> 'receiver') from: Mes...etc...
>     Receiver's instance variables:
>         messageText:     nil
>         tag:     nil
>         signalContext:     nil
>         handlerContext:     nil
>         outerContext:     nil
>         message:     nil
>         receiver:     nil
> 
> MagmaSession>>signalExceptionLike:
>     Receiver: a MagmaSession
>     Arguments and temporary variables:
>         anException:     MessageNotUnderstood:
> MagmaIdRequest>>processUsing:
>         signalableError:     nil
>     Receiver's instance variables:
>         id:     nil
>         user:     a MagmaUser
>     id : __system
>         serializer:     a MaObjectSerializer
>         transaction:     a MaTransaction
>         readStrategy:     nil
>         definition:     a MagmaRepositoryDefinition
>         preferences:     a MagmaPreferences
>         anchor:     nil
>         transactionLevel:     0
>         link:     a MaLocalServerLink
>         strongReferences:     an OrderedCollection()
> 
> MagmaSession>>submit:
>     Receiver: a MagmaSession
>     Arguments and temporary variables:
>         aMagmaRepositoryRequest:     a MagmaIdRequest
>         result:     MessageNotUnderstood:
> MagmaIdRequest>>processUsing:
>     Receiver's instance variables:
>         id:     nil
>         user:     a MagmaUser
>     id : __system
>         serializer:     a MaObjectSerializer
>         transaction:     a MaTransaction
>         readStrategy:     nil
>         definition:     a MagmaRepositoryDefinition
>         preferences:     a MagmaPreferences
>         anchor:     nil
>         transactionLevel:     0
>         link:     a MaLocalServerLink
>         strongReferences:     an OrderedCollection()
> 
> MagmaSession>>remoteMagmaId
>     Receiver: a MagmaSession
>     Arguments and temporary variables:
> 
>     Receiver's instance variables:
>         id:     nil
>         user:     a MagmaUser
>     id : __system
>         serializer:     a MaObjectSerializer
>         transaction:     a MaTransaction
>         readStrategy:     nil
>         definition:     a MagmaRepositoryDefinition
>         preferences:     a MagmaPreferences
>         anchor:     nil
>         transactionLevel:     0
>         link:     a MaLocalServerLink
>         strongReferences:     an OrderedCollection()
> 
> 
> --- The full stack ---
> MessageNotUnderstood(Object)>>doesNotUnderstand:
> #copyAttributes:from:
> MagmaSession>>signalExceptionLike:
> MagmaSession>>submit:
> MagmaSession>>remoteMagmaId
>  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> MagmaSession>>validateRemoteId
> MagmaSession>>primConnect
> MagmaSession>>connect:
> MagmaRepositoryController>>connect
> MagmaRepositoryController>>createRepositoryAt:
> MagmaRepositoryController class>>create:
> MagmaRepositoryController class>>create:root:
> UndefinedObject>>DoIt
> Compiler>>evaluate:in:to:notifying:ifFail:logged:
> [] in TextMorphEditor(ParagraphEditor)>>evaluateSelection {[rcvr
> class
> evaluatorClass new   evaluate: self selectionAsStream   in: ctxt...]}
> BlockContext>>on:do:
> TextMorphEditor(ParagraphEditor)>>evaluateSelection
> [] in PluggableTextMorph>>exploreIt {[result := textMorph editor
> evaluateSelection.  ((result isKindOf: FakeClass...]}
> [] in PluggableTextMorph>>handleEdit: {[result := editBlock value]}
> TextMorphForEditView(TextMorph)>>handleEdit:
> PluggableTextMorph>>handleEdit:
> PluggableTextMorph>>exploreIt
> Workspace(StringHolder)>>perform:orSendTo:
> [] in MenuItemMorph>>invokeWithEvent: {[(selArgCount := selector
> numArgs) =
> 0   ifTrue: [target perform: selector] ...]}
> BlockContext>>ensure:
> CursorWithMask(Cursor)>>showWhile:
> MenuItemMorph>>invokeWithEvent:
> MenuItemMorph>>mouseUp:
> MenuItemMorph>>handleMouseUp:
> MouseButtonEvent>>sentTo:
> MenuItemMorph(Morph)>>handleEvent:
> MorphicEventDispatcher>>dispatchDefault:with:
> MorphicEventDispatcher>>dispatchEvent:with:
> MenuItemMorph(Morph)>>processEvent:using:
> MorphicEventDispatcher>>dispatchDefault:with:
> MorphicEventDispatcher>>dispatchEvent:with:
> MenuMorph(Morph)>>processEvent:using:
> MenuMorph(Morph)>>processEvent:
> MenuMorph>>handleFocusEvent:
> [] in HandMorph>>sendFocusEvent:to:clear: {[ActiveHand := self. 
> ActiveEvent
> := anEvent.  result := focusHolder     han...]}
> [] in PasteUpMorph>>becomeActiveDuring: {[aBlock value]}
> BlockContext>>on:do:
> PasteUpMorph>>becomeActiveDuring:
> HandMorph>>sendFocusEvent:to:clear:
> ....etc...
> 
> Thanks in advance.
> Juan M.
> > _______________________________________________
> Magma mailing list
> Magma at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/mailman/listinfo/magma
> 



More information about the Magma mailing list