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.
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@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@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/magma
magma@lists.squeakfoundation.org