issrg.acm
Class KernelFrame

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by java.awt.Window
              extended by java.awt.Dialog
                  extended by javax.swing.JDialog
                      extended by issrg.acm.KernelFrame
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants

public class KernelFrame
extends javax.swing.JDialog

This is the GUI Frame of the Privilege Allocator. It understands how to use the Registry to obtain extensions and editors.

Call initEnvironment to let the frame know who the Registry is, if that changes after calling the constructor. Then call getAC to let the Manager get the user input and return it as an AC.

Version:
1.0
Author:
A.Otenko
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JDialog
javax.swing.JDialog.AccessibleJDialog
 
Nested classes/interfaces inherited from class java.awt.Dialog
java.awt.Dialog.AccessibleAWTDialog
 
Nested classes/interfaces inherited from class java.awt.Window
java.awt.Window.AccessibleAWTWindow
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
static boolean AAIA
           
static java.lang.String AC_USE_EXPLICIT
           
static java.lang.String DIGEST_ALGORITHM_NAME
           
static java.lang.String DIRECTORY_NAMES_SEPARATOR
           
 java.util.Vector extensionNamesList
           
static java.lang.String LOCATION_SEPARATOR
           
static boolean NOREV
           
static java.lang.String SEPARATOR
           
static java.lang.String TIMES_SEPARATOR
           
static boolean WEBDAVREV
           
 
Fields inherited from class javax.swing.JDialog
accessibleContext, rootPane, rootPaneCheckingEnabled
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, HIDE_ON_CLOSE
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
KernelFrame(Registry r, javax.swing.JFrame f, java.lang.String file, boolean existing)
           
 
Method Summary
static java.lang.String calculateNexthash(java.lang.String string)
           
 java.util.Vector collapseAttributes(java.util.Vector src)
           
protected  void createASN1(java.lang.String editorsCollection, java.lang.String things, java.util.Vector dataList)
           
 java.util.Vector expandAttributes(java.util.Vector src)
           
protected  byte[] generateAC()
          Generates an AC, getting data from the input fields and Environment.
 byte[] getAC(AttributeCertificate ac)
          It returns a byte array, representing the BER encoded signed AC.
protected  ObjectDigestInfo getHolderDigestInfo(boolean v2)
           
protected  AttCertValidityPeriod getValidityPeriod()
           
 void initEnvironment()
           
protected  void jAttributeEditButton_actionPerformed(java.awt.event.ActionEvent e)
           
protected  void jAttributeRemoveButton_actionPerformed(java.awt.event.ActionEvent e)
           
protected  void jAttributesButton_actionPerformed(java.awt.event.ActionEvent e)
           
protected  void jCreateACButton_actionPerformed(java.awt.event.ActionEvent e)
           
protected  boolean loadFromEnvironment()
          This loads things from environment into the input boxes and the Attribute List.
protected  boolean parseACIntoEnvironment(AttributeCertificate ac)
          Parses ac parameter and fills the Environment with according values.
protected  void processWindowEvent(java.awt.event.WindowEvent e)
           
protected  void removeASN1(javax.swing.JList jlist, java.util.Vector list, java.lang.String things)
           
protected  void runEditor(java.lang.String name)
           
protected  boolean saveToEnvironment()
          This saves things to environment from the input boxes and the Attribute List.
protected  void showDISLoginDialog()
           
protected  void showReturnMessage(java.lang.String msg)
           
 
Methods inherited from class javax.swing.JDialog
addImpl, createRootPane, dialogInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getJMenuBar, getLayeredPane, getRootPane, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, remove, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, update
 
Methods inherited from class java.awt.Dialog
addNotify, getTitle, hide, isModal, isResizable, isUndecorated, setModal, setResizable, setTitle, setUndecorated, show
 
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, finalize, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getInputContext, getListeners, getLocale, getMostRecentFocusOwner, getOwnedWindows, getOwner, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindowStateListeners, isActive, isAlwaysOnTop, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, pack, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, setAlwaysOnTop, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setLocationByPlatform, setLocationRelativeTo, toBack, toFront
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, removeNotify, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, setBackground, setBounds, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setName, setPreferredSize, setSize, setSize, setVisible, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

TIMES_SEPARATOR

public static final java.lang.String TIMES_SEPARATOR
See Also:
Constant Field Values

DIRECTORY_NAMES_SEPARATOR

public static final java.lang.String DIRECTORY_NAMES_SEPARATOR
See Also:
Constant Field Values

DIGEST_ALGORITHM_NAME

public static final java.lang.String DIGEST_ALGORITHM_NAME
See Also:
Constant Field Values

AC_USE_EXPLICIT

public static final java.lang.String AC_USE_EXPLICIT
See Also:
Constant Field Values

SEPARATOR

public static final java.lang.String SEPARATOR
See Also:
Constant Field Values

LOCATION_SEPARATOR

public static final java.lang.String LOCATION_SEPARATOR
See Also:
Constant Field Values

WEBDAVREV

public static boolean WEBDAVREV

NOREV

public static boolean NOREV

AAIA

public static boolean AAIA

extensionNamesList

public java.util.Vector extensionNamesList
Constructor Detail

KernelFrame

public KernelFrame(Registry r,
                   javax.swing.JFrame f,
                   java.lang.String file,
                   boolean existing)
Method Detail

initEnvironment

public void initEnvironment()

parseACIntoEnvironment

protected boolean parseACIntoEnvironment(AttributeCertificate ac)
Parses ac parameter and fills the Environment with according values. The values read from ac override those that are possibly there in Environment already. Returns true if it was actually possible to add anything. It is not always a case it added anything at all: ac could be null.

Parameters:
ac - the AttributeCertificate to parse; can be null.
Returns:
returns false if the pointer to VARIABLES collection is null.

loadFromEnvironment

protected boolean loadFromEnvironment()
This loads things from environment into the input boxes and the Attribute List.

Returns:
true if loaded OK

saveToEnvironment

protected boolean saveToEnvironment()
This saves things to environment from the input boxes and the Attribute List.

Returns:
true if saved OK

processWindowEvent

protected void processWindowEvent(java.awt.event.WindowEvent e)
Overrides:
processWindowEvent in class javax.swing.JDialog

getAC

public byte[] getAC(AttributeCertificate ac)
It returns a byte array, representing the BER encoded signed AC.

Parameters:
ac - is the AttributeCertificate to edit; pass null if you want a new AC
Returns:
the byte array of the BER encoded signed AC

jCreateACButton_actionPerformed

protected void jCreateACButton_actionPerformed(java.awt.event.ActionEvent e)

calculateNexthash

public static java.lang.String calculateNexthash(java.lang.String string)

generateAC

protected byte[] generateAC()
                     throws ACCreationException
Generates an AC, getting data from the input fields and Environment. Particularly, V2 AC will be generated, if V1orV2 radiobutton is selected, and V2_FLAG is present in the environment, and its value as boolean is true.

If, however, Force V1 radio-button is selected, but some V2 features or V2_FLAG are also present, a dialog box will pop-up, for user to confirm either use v2 or v1 AC.

Throws:
ACCreationException

showReturnMessage

protected void showReturnMessage(java.lang.String msg)

showDISLoginDialog

protected void showDISLoginDialog()

jAttributesButton_actionPerformed

protected void jAttributesButton_actionPerformed(java.awt.event.ActionEvent e)

jAttributeEditButton_actionPerformed

protected void jAttributeEditButton_actionPerformed(java.awt.event.ActionEvent e)

jAttributeRemoveButton_actionPerformed

protected void jAttributeRemoveButton_actionPerformed(java.awt.event.ActionEvent e)

getHolderDigestInfo

protected ObjectDigestInfo getHolderDigestInfo(boolean v2)

getValidityPeriod

protected AttCertValidityPeriod getValidityPeriod()
                                           throws ACCreationException
Throws:
ACCreationException

expandAttributes

public java.util.Vector expandAttributes(java.util.Vector src)

collapseAttributes

public java.util.Vector collapseAttributes(java.util.Vector src)

createASN1

protected void createASN1(java.lang.String editorsCollection,
                          java.lang.String things,
                          java.util.Vector dataList)

removeASN1

protected void removeASN1(javax.swing.JList jlist,
                          java.util.Vector list,
                          java.lang.String things)

runEditor

protected void runEditor(java.lang.String name)