How do I make a square when the existing edge is not alined to any of the axes? If I have two arbitrary points (not aligned with any particular axis), is there a way to make a square using them?

For example, if I have two points along the X axis, I can select the edge between them, E to extrude it, Y to constrain, and type in the length to make a square.





Can anyone help me do this if the points are not alined on the X or Y axis?
With the edge selected open up the properties pane with N Scroll down to the Mesh display section and turn on Length for the Edge Info. 

Now press E to extrude, then press YY to constrain the movement to the Y Normal axis. Pressing XX or ZZ would lock movement to each their respective axes. Finally before you confirm the movement, type in the length of the first edge.